from flask_wtf.csrf import csrfprotect
......
csrfprotect只做驗證工作,cookie中的 csrf_token 和表單中的 csrf_token 需要我們自己實現目前登入註冊發起的 post 請求均未進行 csrf_token 校驗,根據 csrf_token 校驗原理,具體操作步驟有以下幾步:
後端生成 csrf_token 的值,在前端請求登入或者註冊介面的時候將值傳給前端,傳給前端的方式可能有以下兩種:
在前端發起請求時,在表單或者在請求頭中帶上指定的 csrf_token
後端在接受到請求之後,取到前端傳送過來的 csrf_token,與第1步生成的 csrf_token 的值進行校驗
如果校驗對 csrf_token 一致,則代表是正常的請求,否則可能是偽造請求,不予通過
# 匯入生成 csrf_token 值的函式
from flask_wtf.csrf import generate_csrf
# 呼叫函式生成 csrf_token
csrf_token = generate_csrf()
defafter_request
(response):
# 呼叫函式生成 csrf_token
csrf_token = generate_csrf()
# 通過 cookie 將值傳給前端
response.set_cookie("csrf_token", csrf_token)
return response
$.ajax(,
data: json.stringify(params),
success: function (resp) else
}})
跨站請求偽造 CSRF
跨站請求偽造 csrf 顧名思義就是在其他非法 呼叫了正常 的介面,攻擊的方法是在頁面中包含惡意 或者鏈結,攻擊者認為被攻擊的使用者有權訪問另乙個 如果使用者在那個 的會話沒有過期,攻擊者就能執行未經授權的操作。大多數 rails 程式都使用 cookie 儲存會話,可能只把會話 id 儲存在 co...
CSRF跨站請求偽造
前面說到xss跨站指令碼攻擊,現在來個複雜度更高一點的csrf跨站請求偽造 首先說一下rsrf的幾個要點 1.rsrf是通過各種方法 站內發布鏈結,qq郵箱發布鏈結等 讓登入使用者觸發請求,在使用者不覺察的過程中對使用者資料進行篡改,進而實現攻擊 2.通過xss可以獲取到使用者的session id...
CSRF 跨站請求偽造
csrf cross site request forgery 中文是跨站請求偽造。csrf攻擊者在使用者已經登入目標 之後,誘使使用者訪問乙個攻擊頁面,利用目標 對使用者的信任,以使用者身份在攻擊頁面對目標 發起偽造使用者操作的請求,達到攻擊目的。舉個列子 假如a站為受信任的銀行 其中有個銀行轉賬...