我試圖通過SSL加密我的整個站點。但是,我沒有找到明確的方法來使用Django 1.4來做到這一點。有誰知道解決方案?在Django中強制https
1
A
回答
4
您可以使用中間件,例如django-secure中提供的中間件,或者您可以通過將所有HTTP請求重定向到HTTPS來處理Apache/Nginx/HAProxy級別的中間件。
2
在Apache + Django的(1.6),這是可以做到的一些方法,但一個簡單的方法可以在.htaccess或httpd.conf文件做的是:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URL}
下面是進一步信息的鏈接它:
http://wiki.apache.org/httpd/RewriteHTTPToHTTPS
可以肯定的會話和CSRF餅乾不是由客戶端通過普通的HTTP連接泄露你應該確保它們被設置爲「安全cookie」,只有客戶端通過HTTPS發送。這可以在你的settings.py文件如下:
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
的介紹到Django的安全性,包括SSL/HTTPS(必讀):
相關問題
- 1. 強制https在htaccess中
- 2. 強制https在index.php
- 3. .htaccess強制HTTPS
- 4. 強制在Django
- 5. 強制HTTP到HTTPS URL中
- 6. Websphere 6.1中的強制Https
- 7. 強制WWW和HTTPS在.htaccess
- 8. 強制HTTPS和WWW
- 9. 強制https協議
- 10. 在.htaccess中強制HTTPS和WWW
- 11. 在WebFlow中強制使用https
- 12. 在MVC中登錄後強制HTTPS
- 13. 在路由生成中強制HTTPS
- 14. 在SYMFONY中強制HTTPS僅使用HTACCESS
- 15. 強制HTTPS中斷htaccess中的RewriteRule
- 16. 強制WCF使用HTTPS
- 17. 強制HTTPS不起作用
- 18. Apache VirtualHost設置強制https
- 19. PhalconPHP + .htaccess:如何強制https
- 20. 使用.htaccess強制HTTPS
- 21. 強制HTTPS與htaccess的www
- 22. 強制mod_speling使用https
- 23. 強制所有頁面HTTPS
- 24. 「config.force_ssl = true」不強制HTTPS
- 25. 如何爲* .example.com強制https?
- 26. 強制HTTP而不是HTTPS
- 27. Azure函數:強制HTTPS
- 28. 通過HTTPS強制HTTP AUTH
- 29. 用.htaccess強制HTTPS和HTTP
- 30. .htaccess - 試圖強制https:
+1雖然,只是做它在服務器級別。 Django沒有理由參與這個過程。 – 2012-08-03 19:09:55
如果你有一個HTTP和HTTPS的混合,那麼你很可能需要一個Django中間件,但如果一切都將是HTTPS,那麼你最好在服務器級別處理這個。 – 2012-08-03 19:20:56
不是有爭議的,但即使如此,我還是會說在服務器級別做。例如,與大多數情況一樣,我的管理員僅通過HTTPS提供服務,但我網站的其餘部分是HTTP。在我的nginx conf中,我只需將任何請求重定向到位置/ admin /通過HTTP傳輸到HTTPS。 Django仍然沒有參與,也不需要。 – 2012-08-03 19:34:47