1、settings.py沒有注釋到csrf。當post請求的方式會報錯。
接下來就解決問題!
1. django中介軟體 最多5個1.fbv:情況一:csrf開啟,個別不需要csrf認證。在方法的上方加@csrf_exempt 。這是全域性使用csrf。-process_request 請求
-process_view
-process_response 相應
-process_exception 異常
-process_render_template
2. 中介軟體執行流程:
process_request>路由匹配 找到函式不執行》process_view
>檢視函式》process_response
3. 中介軟體的作用
-許可權
-使用者登入驗證
4. django的csrf實現功能:
csrf在process_view方法
-檢查檢視是否被@csrf_exempt(免除csrf認證)
- 去請求體或cookie中獲取token
2.fbv:情況二:csrf注釋,個別需要csrf認證。加@csrf_protect ,這是區域性使用csrf。
1.cbv:情況一:csrf開啟,個別不需要csrf認證。@method_decorator 全域性使用csrf。
執行結果:加在單獨方法上是不行的,還是會報錯。
方式一:
方式二:載入class類上,指定方法名。裝飾的位置不一樣。
總結:-本質,基於反射來實現
-流程:路由,view,dispatch(反射)
-取消csrf認證(裝飾器要加到dispatch方法上且method_decorator裝飾)
擴充套件:-csrf
-基於中介軟體的process_view方法
- 裝飾器給單獨函式進行設定(認證或無需認證)
DRF 全域性認證
auth.py from rest framework.authentication import baseauthentication 用於全域性認證 class globalauthentication baseauthentication def authenticate self,reque...
CSRF Token介紹與應對策略
csrf cross site request forgery,跨站域請求偽造 是一種網路的攻擊方式,它在 2007 年曾被列為網際網路 20 大安全隱患之一。其他安全隱患,比如 sql 指令碼注入,跨站域指令碼攻擊等在近年來已經逐漸為眾人熟知,很多 也都針對他們進行了防禦。然而,對於大多數人來說,...
Flask 第十四話之csrftoken
一 flask設定csrf 1.匯入csrfproject 匯入csrfprotect from flask wtf import csrfprotect 二 前端處理csrf 一 form表單或普通ajax方式 1.設定input標籤 input type text hidden hidden n...