相关疑难解决方法(0)

如何使用Django/nginx部署仅支持HTTPS的站点?

我最初的问题是如何为Django登录页面启用HTTPS,以及唯一的响应,建议我 - 将整个站点设置为仅限HTTPS.

鉴于我正在使用Django 1.3和nginx,那么使网站成为HTTPS的正确方法是什么?

一个回复提到了一个中间件解决方案,但有一点需要注意:

Django在维护POST数据时无法执行SSL重定向.请构建您的视图,以便重定向仅在GET期间发生.

有关nginx重写为https的服务器故障的问题,还提到了POST丢失数据的问题,而且我对nginx不太熟悉,无法确定解决方案的工作情况.

而且EFF建议只使用HTTPS,请注意:

应用程序必须在设置cookie时设置Secure属性.此属性指示浏览器仅通过安全(HTTPS)传输发送cookie,从不安全(HTTP).

像Django-auth这样的应用程序是否能够将cookie设置为安全?或者我是否必须编写更多中间件?

那么,在以下方面,配置Django/nginx组合以实现仅HTTPS的最佳方法是什么?

  • 安全
  • 保存POST数据
  • 饼干处理得当
  • 与其他Django应用程序(如Django-auth)的交互,正常工作
  • 我不知道的任何其他问题:)

编辑 - 我在测试多个浏览器时发现的另一个问题.假设我有一个URL https://mysite.com/search/,它有一个搜索表单/按钮.我按一下按钮,程序在Django像往常一样的形式,做一个Django HttpResponseRedirecthttp://mysite.com/search?results="foo".https://mysite.com/search?results="foo"根据需要,Nginx将其重定向到.

但是 - 重定向发生时,Opera有一个可见的闪存.它发生在每次搜索,即使是相同的搜索词(我猜https真的不缓存:)更糟糕的是,当我在IE中测试它时,我首先得到的消息:

您将被重定向到不安全的连接 - 继续?

单击"是"后,紧接着是:

您即将通过安全连接查看页面 - 继续吗?

虽然第二个IE警告可以选择关闭它 - 但第一个警告没有,所以每当有人进行搜索并被重定向到结果页面时,它们至少会收到一条警告消息.

django https nginx django-authentication

38
推荐指数
3
解决办法
3万
查看次数

标签 统计

django ×1

django-authentication ×1

https ×1

nginx ×1