小编典典

从HTTP登录到HTTPS

ajax

默认情况下,我的网站使用HTTP。我确实有一个启用HTTPS的证书,但是只有其中的某些区域会强制建立安全连接。

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

我尝试强制请求的地址具有HTTPS,它可以完美地答复。但是,在ajax回调中,尽管回复正常,但似乎从未设置会话。

如果请求来自HTTPS,一切都会顺利进行。

为什么会这样?

我可以理解为什么浏览器拒绝HTTPS到HTTP的请求,但是相反的情况(HTTP到HTTPS)产生了一个奇怪的结果,至少可以这样说,因为浏览器不会引发任何类型的错误。尽管Ajax请求完成后,会话似乎从未从未开始过,尽管来自回复的所有数据都告诉我确实如此。


阅读 474

收藏
2020-07-26

共1个答案

小编典典

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

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

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

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

2020-07-26