在Django中預(yù)防CSRF攻擊的操作
CSRF全拼為Cross Site Request Forgery,譯為跨站請(qǐng)求偽造。
CSRF指攻擊者盜用了你的身份,以你的名義發(fā)送惡意請(qǐng)求。
( 包括:以你名義發(fā)送郵件,發(fā)消息,盜取你的賬號(hào),甚至于購買商品,虛擬貨幣轉(zhuǎn)賬…)
造成的問題:個(gè)人隱私泄露以及財(cái)產(chǎn)安全。
CSRF攻擊示意圖
客戶端訪問服務(wù)器時(shí)沒有同服務(wù)器做安全驗(yàn)證

防止 CSRF 攻擊
步驟:
1. 在客戶端向后端請(qǐng)求界面數(shù)據(jù)的時(shí)候,后端會(huì)往響應(yīng)中的 cookie 中設(shè)置 csrf_token 的值
2. 在 Form 表單中添加一個(gè)隱藏的的字段,值也是 csrf_token
3. 在用戶點(diǎn)擊提交的時(shí)候,會(huì)帶上這兩個(gè)值向后臺(tái)發(fā)起請(qǐng)求
4. 后端接受到請(qǐng)求,會(huì)做以下幾件事件:
4.1 從 cookie中取出 csrf_token
4.2 從 表單數(shù)據(jù)中取出來隱藏的 csrf_token 的值
4.3 進(jìn)行對(duì)比
5. 如果比較兩個(gè)值(經(jīng)過算法運(yùn)算得出的結(jié)果)是一樣,那么代表是正常的請(qǐng)求,如果沒取到或者比較不一樣,代表不是正常的請(qǐng)求,不執(zhí)行下一步操作

CSRF_TOKEN的設(shè)置過程
創(chuàng)建視圖類

添加路由

添加表單
在form里添加語句

<form method="post" action="/tpl/csrf">
{{ csrf_input }}
<p>
<label for="fave">Fruit: <input id="fave" name="fave" /></label>
</p>
<p>
<label for="name">Name: <input id="name" name="name" /></label>
</p>
<button>提交</button>
</form>

補(bǔ)充知識(shí):Django實(shí)現(xiàn)url跳轉(zhuǎn)(重定向)
編輯urls.py文件如下:
from django.urls import path, include
from 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攻擊的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python編程培訓(xùn) python培訓(xùn)靠譜嗎
現(xiàn)在大家都知道,比較火的編程語言就是python了,很多朋友都想學(xué)習(xí)python編程,想上一個(gè)好的python培訓(xùn)班,小編今天給大家全面分析一下關(guān)于python編程培訓(xùn)方面的問題,希望能給你答疑解惑。2018-01-01
python實(shí)現(xiàn)大文本文件分割成多個(gè)小文件
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)大文本文件分割成多個(gè)小文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
一文帶你玩轉(zhuǎn)python中的requests函數(shù)
在Python中,requests庫是用于發(fā)送HTTP請(qǐng)求的常用庫,因?yàn)樗峁┝撕?jiǎn)潔易用的接口,本文將深入探討requests庫的使用方法,感興趣的可以學(xué)習(xí)下2023-08-08
python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換
這篇文章主要為大家介紹了python數(shù)字圖像處理數(shù)據(jù)類型及顏色空間轉(zhuǎn)換示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
VS2019+python3.7+opencv4.1+tensorflow1.13配置詳解
這篇文章主要介紹了VS2019+python3.7+opencv4.1+tensorflow1.13配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python異步發(fā)送日志到遠(yuǎn)程服務(wù)器詳情
這篇文章主要介紹了Python異步發(fā)送日志到遠(yuǎn)程服務(wù)器詳情,文章通過簡(jiǎn)單輸出到cmd和文件中的代碼展開詳情,需要的朋友可以參考一下2022-07-07

