[英]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.