我试图通过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. 强制HTTP到HTTPS URL中
- 3. Websphere 6.1中的强制Https
- 4. 在WebFlow中强制使用https
- 5. 在.htaccess中强制HTTPS和WWW
- 6. 强制WCF使用HTTPS
- 7. 如何为* .example.com强制https?
- 8. 强制WWW使用HTTPS
- 9. Apache VirtualHost设置强制https
- 10. 通过HTTPS强制HTTP AUTH
- 11. Azure函数:强制HTTPS
- 12. 强制无WWW和HTTPS
- 13. 使用.htaccess强制HTTPS
- 14. 强制HTTPS不起作用
- 15. PhalconPHP + .htaccess:如何强制https
- 16. 强制HTTPS与htaccess的www
- 17. 强制mod_speling使用https
- 18. 为什么https在本地被强制?
- 19. 在Azure上强制HTTPS并追加URL
- 20. 在页面上强制SSL(https)
- 21. 在Wordpress multisite上强制使用https
- 22. 在nginx上强制使用HTTPS(例外)
- 23. 在主页上强制HTTPS,但在所有其他上强制HTTP
- 24. 在struts应用程序中强制使用Grails中的https
- 25. 为整个服务器/域强制HTTPS
- 26. Mod_Rewrite:强制https除了特定页面
- 27. htaccess文件重定向到强制https
- 28. 强制非www和https通过htaccess
- 29. 使用的.htaccess强制HTTP或HTTPS
- 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