我正在使用带有ssl重定向中间件的Django 1.1.1。
通过HTTPS创建的会话数据(身份验证等)在站点的HTTP部分中不可用。
在不必将整个网站设为HTTPS的情况下,使其可用的最佳方法是什么?
答案 0 :(得分:4)
这是设计上的,而不是你可以随时改变的东西。
当通过HTTP查看同一站点时,浏览器不会发送通过HTTPS发送的Cookie /身份验证。您最好的解决方案可能是将用户从HTTPS页面重定向到设置身份验证cookie的HTTP页面。
请注意,这个未经身份验证的Cookie会以明文形式通过网络发送,让您的用户可以进行欺骗和重播攻击。这可能与您的申请无关。
答案 1 :(得分:0)
遇到了类似的问题。 #django IRC上的用户iiie向我指出了这个设置:
SESSION_COOKIE_DOMAIN
(https://docs.djangoproject.com/en/dev/ref/settings/#session-cookie-domain)将此选项设置为".domain.com"
,我可以在HTTP / HTTPS之间以及域和主机/子域之间共享会话。
我可以想象一种情况,其中一个并不是那两个,但它现在解决了我的问题。