在Django中預(yù)防CSRF攻擊的操作
CSRF全拼為Cross Site Request Forgery,譯為跨站請求偽造。
CSRF指攻擊者盜用了你的身份,以你的名義發(fā)送惡意請求。
( 包括:以你名義發(fā)送郵件,發(fā)消息,盜取你的賬號,甚至于購買商品,虛擬貨幣轉(zhuǎn)賬…)
造成的問題:個(gè)人隱私泄露以及財(cái)產(chǎn)安全。
CSRF攻擊示意圖
客戶端訪問服務(wù)器時(shí)沒有同服務(wù)器做安全驗(yàn)證
防止 CSRF 攻擊
步驟:
1. 在客戶端向后端請求界面數(shù)據(jù)的時(shí)候,后端會往響應(yīng)中的 cookie 中設(shè)置 csrf_token 的值
2. 在 Form 表單中添加一個(gè)隱藏的的字段,值也是 csrf_token
3. 在用戶點(diǎn)擊提交的時(shí)候,會帶上這兩個(gè)值向后臺發(fā)起請求
4. 后端接受到請求,會做以下幾件事件:
4.1 從 cookie中取出 csrf_token
4.2 從 表單數(shù)據(jù)中取出來隱藏的 csrf_token 的值
4.3 進(jìn)行對比
5. 如果比較兩個(gè)值(經(jīng)過算法運(yùn)算得出的結(jié)果)是一樣,那么代表是正常的請求,如果沒取到或者比較不一樣,代表不是正常的請求,不執(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ǔ)充知識: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攻擊的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何基于Python Matplotlib實(shí)現(xiàn)網(wǎng)格動畫
這篇文章主要介紹了如何基于Python Matplotlib實(shí)現(xiàn)網(wǎng)格動畫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07matlab和Excel的數(shù)據(jù)交互操作(非xlsread和xlswrite)
在使用MATLAB時(shí),可能會遇到很多表格數(shù)據(jù)的處理,有時(shí)MATLAB也需要利用現(xiàn)存的表格數(shù)據(jù)實(shí)現(xiàn)操作目的,下面這篇文章主要給大家介紹了關(guān)于matlab和Excel的交互操作的相關(guān)資料,非xlsread和xlswrite,需要的朋友可以參考下2021-08-08python DataFrame獲取行數(shù)、列數(shù)、索引及第幾行第幾列的值方法
下面小編就為大家分享一篇python DataFrame獲取行數(shù)、列數(shù)、索引及第幾行第幾列的值方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04pandas讀取excel時(shí)獲取讀取進(jìn)度的實(shí)現(xiàn)
這篇文章主要介紹了pandas讀取excel時(shí)獲取讀取進(jìn)度的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04python實(shí)現(xiàn)顏色rgb和hex相互轉(zhuǎn)換的函數(shù)
這篇文章主要介紹了python實(shí)現(xiàn)顏色rgb和hex相互轉(zhuǎn)換的函數(shù),可實(shí)現(xiàn)將rgb表示的顏色轉(zhuǎn)換成hex值的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03