簡體   English   中英

用於HTTP和HTTPS的Django CSRF

[英]Django CSRF for both HTTP and HTTPS

我有一個在HTTP和HTTPS后面運行的博客,並且遇到了csrf令牌驗證的問題。

CSRF令牌在每個表單中都應該是可用的,但是當我在站點的HTTP版本上並嘗試提交注釋時,我會收到以下錯誤。

禁止(403)CSRF驗證失敗。 請求中止。

引用檢查失敗 - http://mysite.com/blog/1/https://mysite.com/不匹配。

通過HTTPS查看博客時,它可以正常工作。

任何人都知道如何使驗證與兩者相匹配?

您可能需要檢查設置以查看是否將CSRF_COOKIE_SECURE參數設置為True

這標志着cookie是安全的,並阻止瀏覽器通過非安全連接(即HTTP)接受它。

要檢查這是否是問題的根源,您可以使用任何有效的視圖並插入斷言False以獲取調試屏幕並查看是否發送了Csrf cookie或者是否。

我想到了。 這是我的fastcgi參數的一個問題

fastcgi_param HTTPS on;

設置需要啟用HTTPS的環境變量。 當這個變量打開時,Django會對csrf標記執行一些額外的強制執行。

暫無
暫無

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

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