flask 專案之中實現跨域請求保護

2022-05-08 15:18:11 字數 1365 閱讀 9559

from flask_wtf.csrf import

csrfprotect, generate_csrf

2,瀏覽器傳送請求,伺服器給每次請求設定 csrf_token值

#

請求鉤子,每次請求都會設定 csrf_token值,檢視函式執行之後呼叫!

#在每次請求之後, 生成csrf_token, 設定到cookie中,對響應進行最後的處理!

defafter_request(response):

#token生成後,會快取起來, 多次生成仍是同乙個

csrf_token =generate_csrf()

#wtf擴充套件會自動將corf_token存入session

response.set_cookie('

csrf_token

', csrf_token)

return response

3,前端將cookie之中的csrf_token之中的設定到自己的請求之中

如果ajax 來實現資料互動

$.ajax(,

data: json.stringify(params),

success:

function

(resp)

else

}})

如果是表單,可以是表單內任意乙個標籤設定csrf_token()

4,後端收到請求之後會將csrf_token() 值進行比對,如果相同就可以認為不是釣魚**的請求!

以下是'模擬'csrfprotect 類的操作,在執行表單提交會進行以下操作。

'''

if request.method == "post":

to_account = request.form.get("to_account")

money = request.form.get("money")

# 取出表單中的 csrf_token

form_csrf_token = request.form.get("csrf_token")

# 取出 cookie 中的 csrf_token

cookie_csrf_token = request.cookies.get("csrf_token")

# 進行對比

if cookie_csrf_token != form_csrf_token:

return 'token校驗失敗,可能是非法操作'

print('假裝執行轉操作,將當前登入使用者的錢轉賬到指定賬戶')

return '轉賬 %s 元到 %s 成功' % (money, to_account)

'''

flask跨域請求

跨域檔案上傳的時候,瀏覽器會自動發起乙個 options 方法到伺服器,現在後台解決前端跨域解決前端跨域請求的問題 客戶端發起的這個 options 可以說是乙個 預請求 用於探測後續真正需要發起的跨域 post 請求對於伺服器來說是否是安全可接受的,因為跨域提交資料對於伺服器來說可能存在很大的安全...

Flask實現跨域請求的處理方法

在flask開發restful後端時,前端請求會遇www.cppcns.com到跨域的問題。下面是解決方法 使用 flask cors庫可以很容易的解決 pip install flask cors 兩種方法,乙個是全域性 批量的,乙個是單一獨立的 安全起見,一般來說使用獨立的方式會常用一些。1.獨...

Flask解決跨域請求問題

筆者在python爬蟲爬取職位資訊的過程中,使用的web框架為flask,在實驗過程中發現請求已經返回成功,但是卻無法在頁面中顯示出結果 通過瀏覽器的控制台發現是因為由於出現了由於跨域請求安全問題導致被瀏覽器攔截了。跨域請求原理 在 html 中,等標籤以及 ajax 都可以指向乙個資源位址,而所謂...