在Django中預(yù)防CSRF攻擊的操作
CSRF全拼為Cross Site Request Forgery,譯為跨站請求偽造。
CSRF指攻擊者盜用了你的身份,以你的名義發(fā)送惡意請求。
( 包括:以你名義發(fā)送郵件,發(fā)消息,盜取你的賬號,甚至于購買商品,虛擬貨幣轉(zhuǎn)賬…)
造成的問題:個人隱私泄露以及財產(chǎn)安全。
CSRF攻擊示意圖
客戶端訪問服務(wù)器時沒有同服務(wù)器做安全驗證
防止 CSRF 攻擊
步驟:
1. 在客戶端向后端請求界面數(shù)據(jù)的時候,后端會往響應(yīng)中的 cookie 中設(shè)置 csrf_token 的值
2. 在 Form 表單中添加一個隱藏的的字段,值也是 csrf_token
3. 在用戶點擊提交的時候,會帶上這兩個值向后臺發(fā)起請求
4. 后端接受到請求,會做以下幾件事件:
4.1 從 cookie中取出 csrf_token
4.2 從 表單數(shù)據(jù)中取出來隱藏的 csrf_token 的值
4.3 進行對比
5. 如果比較兩個值(經(jīng)過算法運算得出的結(jié)果)是一樣,那么代表是正常的請求,如果沒取到或者比較不一樣,代表不是正常的請求,不執(zhí)行下一步操作
CSRF_TOKEN的設(shè)置過程
創(chuàng)建視圖類
添加路由
添加表單
在form里添加語句
<form method='post' action='/tpl/csrf'> {{ csrf_input }}<p> <label for='fave'>Fruit: <input name='fave' /></label></p><p> <label for='name'>Name: <input name='name' /></label></p><button>提交</button></form>
補充知識:Django實現(xiàn)url跳轉(zhuǎn)(重定向)
編輯urls.py文件如下:
from django.urls import path, includefrom django.views.generic import RedirectView urlpatterns = [ path(’polls/’, include(’polls.urls’)), path(’’, RedirectView.as_view(url=’polls/’)), ]
即表示將xxx.com跳轉(zhuǎn)到xxx.com/polls/。
以上這篇在Django中預(yù)防CSRF攻擊的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 基于PHP做個圖片防盜鏈2. ASP.NET MVC把數(shù)據(jù)庫中枚舉項的數(shù)字轉(zhuǎn)換成文字3. asp.net core 認證和授權(quán)實例詳解4. XML在語音合成中的應(yīng)用5. .NET中實現(xiàn)對象數(shù)據(jù)映射示例詳解6. 基于javaweb+jsp實現(xiàn)企業(yè)車輛管理系統(tǒng)7. ASP.NET MVC使用Boostrap實現(xiàn)產(chǎn)品展示、查詢、排序、分頁8. 如何使用ASP.NET Core 配置文件9. jscript與vbscript 操作XML元素屬性的代碼10. php使用正則驗證密碼字段的復(fù)雜強度原理詳細講解 原創(chuàng)
