成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

在Django中預(yù)防CSRF攻擊的操作

瀏覽:228日期:2024-10-20 16:03:43

CSRF全拼為Cross Site Request Forgery,譯為跨站請(qǐng)求偽造。

CSRF指攻擊者盜用了你的身份,以你的名義發(fā)送惡意請(qǐng)求。

( 包括:以你名義發(fā)送郵件,發(fā)消息,盜取你的賬號(hào),甚至于購(gòu)買商品,虛擬貨幣轉(zhuǎn)賬…)

造成的問(wèn)題:個(gè)人隱私泄露以及財(cái)產(chǎn)安全。

CSRF攻擊示意圖

客戶端訪問(wèn)服務(wù)器時(shí)沒(méi)有同服務(wù)器做安全驗(yàn)證

在Django中預(yù)防CSRF攻擊的操作

防止 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ù)中取出來(lái)隱藏的 csrf_token 的值

4.3 進(jìn)行對(duì)比

5. 如果比較兩個(gè)值(經(jīng)過(guò)算法運(yùn)算得出的結(jié)果)是一樣,那么代表是正常的請(qǐng)求,如果沒(méi)取到或者比較不一樣,代表不是正常的請(qǐng)求,不執(zhí)行下一步操作

在Django中預(yù)防CSRF攻擊的操作

CSRF_TOKEN的設(shè)置過(guò)程

創(chuàng)建視圖類

在Django中預(yù)防CSRF攻擊的操作

添加路由

在Django中預(yù)防CSRF攻擊的操作

添加表單

在form里添加語(yǔ)句

在Django中預(yù)防CSRF攻擊的操作

<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中預(yù)防CSRF攻擊的操作

補(bǔ)充知識(shí):Django實(shí)現(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攻擊的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章: