您的位置:首頁技術文章
文章詳情頁

在Django中預防CSRF攻擊的操作

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

CSRF全拼為Cross Site Request Forgery,譯為跨站請求偽造。

CSRF指攻擊者盜用了你的身份,以你的名義發送惡意請求。

( 包括:以你名義發送郵件,發消息,盜取你的賬號,甚至于購買商品,虛擬貨幣轉賬…)

造成的問題:個人隱私泄露以及財產安全。

CSRF攻擊示意圖

客戶端訪問服務器時沒有同服務器做安全驗證

在Django中預防CSRF攻擊的操作

防止 CSRF 攻擊

步驟:

1. 在客戶端向后端請求界面數據的時候,后端會往響應中的 cookie 中設置 csrf_token 的值

2. 在 Form 表單中添加一個隱藏的的字段,值也是 csrf_token

3. 在用戶點擊提交的時候,會帶上這兩個值向后臺發起請求

4. 后端接受到請求,會做以下幾件事件:

4.1 從 cookie中取出 csrf_token

4.2 從 表單數據中取出來隱藏的 csrf_token 的值

4.3 進行對比

5. 如果比較兩個值(經過算法運算得出的結果)是一樣,那么代表是正常的請求,如果沒取到或者比較不一樣,代表不是正常的請求,不執行下一步操作

在Django中預防CSRF攻擊的操作

CSRF_TOKEN的設置過程

創建視圖類

在Django中預防CSRF攻擊的操作

添加路由

在Django中預防CSRF攻擊的操作

添加表單

在form里添加語句

在Django中預防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中預防CSRF攻擊的操作

補充知識:Django實現url跳轉(重定向)

編輯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跳轉到xxx.com/polls/。

以上這篇在Django中預防CSRF攻擊的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
国产综合久久一区二区三区