簡體   English   中英

Django DRF with React:如何獲取 CSRF cookie?

[英]Django DRF with React: How to obtain CSRF cookie?

我有一個在frontend.example.com運行的 React 前端和一個 Django 后端,DRF 在backend.example.com運行。 我正在使用 Django Session 身份驗證,我想正確實施CSRF 保護

以 React 登錄頁面frontend.example.com/login為例。 這是用戶第一次訪問該頁面。 有一個帶有用戶和密碼的表單,在提交時會向 Django 后端創建一個新的 POST 請求。 據我所知,CSRF 令牌 cookie 應該已經包含在此請求中,對吧?

如何從 Django 后端獲取該 CSRF 令牌? 我正在考慮在加載登錄頁面時向 Django 后端發出 GET 請求以獲取該 CSRF 令牌 cookie。 這是這樣做的方法還是有其他最佳做法?

Django 有一個 AJAX 請求和如何處理 CSRF 的部分: AJAX

使用此方法,您應該為每個發布請求一遍又一遍地發送令牌。 另一種方法是使用 CORS。 在此方法中,您僅響應已列入白名單的域,並且標頭也已列入白名單。 因此,您無需獲取和傳遞 CSRF 令牌,而是檢查請求是否來自正確的域,然后您可以對其進行響應。 並結合用於用戶身份驗證的令牌系統,您應該會很好。

如果您使用 DRF,則可以使用此 package 來處理 CORS: django-cors-headers

使用速率限制還可以幫助您避免垃圾郵件和機器人造成明顯傷害。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM