从HTTP登录到HTTPS

时间:2016-01-15 13:26:41

标签: jquery ajax http ssl https

默认情况下,我的网站位于HTTP上。我有一个启用HTTPS的证书,但只有某些区域强制建立安全连接。

登录是通过Ajax处理的,我想开始使用SSL,即使请求来自HTTP。

我尝试强制请求的地址为HTTPS,并且它完全回复。但是,在ajax回调中,似乎会话从未设置过,尽管回复没问题。

如果请求来自HTTPS,一切顺利。

为什么会这样?

我可以理解为什么浏览器拒绝HTTPS到HTTP请求,但反向情况(HTTP到HTTPS)有一个特殊的结果,至少可以说,因为浏览器不会抛出任何类型的错误。在Ajax请求完成后,会话似乎从未启动过,尽管所有来自回复的数据都告诉我它是。

1 个答案:

答案 0 :(得分:3)

您的登录系统可能基于会话信息和/或cookie。

出于安全原因,无法在HTTP上读取通过HTTPS设置的Cookie和flagged as secure(请参阅4.2.2 Set-Cookie Syntax部分)。

因此,您系统中可能发生的情况是,您的用户通过HTTPS进行身份验证,只要他们继续使用HTTPS,他们就会登录。在HTTP上,会话将不存在。

您应该不将该特定cookie标记为安全或将整个站点切换为HTTPS(推荐选项)。截至2016年,如果您已经让您的网站听取了HTTPS,那么仅使用HTTPS下的某些网站页面是没有任何意义的。