簡體   English   中英

如何在第一個請求中傳遞 csrf-token

[英]how to pass csrf-token in first request

我的問題是 cookie 是如何工作的,當我第一次加載我的頁面時,我想到了這個問題

REQUEST HEADER
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: en-GB,en;q=0.9,en-US;q=0.8
Cache-Control: max-age=0
Connection: keep-alive
Cookie: csrftoken=gsZxmbW4XUpE6YnaQhlrAx9JduyExVgzWEo4fXhcY4V3fbHWVtwf0msbDQDT5r43
Host: 127.0.0.1:8000
Upgrade-Insecure-Requests: 1

發送第一個請求時,cookie 中已經包含 csrftoken

我在隱身窗口中嘗試了相同的結果,但也得到了相同的結果。 我的瀏覽器如何在沒有與服務器進行任何通信的情況下已經有 cookie

我正在使用 angular 7 開發 django,問題是我正在從 angular 發送我的請求

 this.http.post('http://127.0.0.1:8000/',data,  {observe : "response", withCredentials: true } )}

但作為回應,我在 setcookie 中沒有得到任何 csrftoken。

請幫幫我..... 抱歉在一個問題中添加了兩個問題,但兩者都間接相互關聯

實際上,django 在 127.0.0.1 上運行,而 angular 在 localhost(任何環回地址)上運行,這就是為什么出於安全(CORS)問題,瀏覽器(chrome)不允許我在請求中發送 cookie 或設置 cookie作為回應。 所以我有兩個選擇,一個是在瀏覽器中將相同站點更改為無,或者更改我的角度設置以在 127.0.0.1 上呈現。

CSRF 只能停止到 PUT、POST 和 DELETE,它總是以 GET 請求打開,如果您能夠在第一次通過 GET 發送它,那就太好了。

暫無
暫無

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

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