从HTTP登录到HTTPS
默认情况下,我的网站使用HTTP。我确实有一个启用HTTPS的证书,但是只有其中的某些区域会强制建立安全连接。
登录是通过Ajax处理的,即使请求来自HTTP,我也想开始使用SSL。
我尝试强制请求的地址具有HTTPS,它可以完美地答复。但是,在ajax回调中,尽管回复正常,但似乎从未设置会话。
如果请求来自HTTPS,一切都会顺利进行。
为什么会这样?
我可以理解为什么浏览器拒绝HTTPS到HTTP的请求,但是相反的情况(HTTP到HTTPS)产生了一个奇怪的结果,至少可以这样说,因为浏览器不会引发任何类型的错误。尽管Ajax请求完成后,会话似乎从未从未开始过,尽管来自回复的所有数据都告诉我确实如此。
回答:
您的登录系统可能基于会话信息和/或cookie。
出于安全原因,无法在HTTP上读取通过HTTPS设置并标记为安全(请参阅部分4.2.2
Set-Cookie Syntax)的Cookie 。
因此,在您的系统中可能发生的情况是,您的用户通过HTTPS进行了身份验证,只要他们继续使用HTTPS,他们就会登录。在HTTP上,该会话将不存在。
您既不应该将该特定cookie标记为安全,也不应该将整个站点切换为HTTPS(推荐选项)。截至2016年,如果您已经让网站监听HTTPS,那么仅在HTTPS下拥有网站的某些页面真的没有任何意义。
以上是 从HTTP登录到HTTPS 的全部内容, 来源链接: utcz.com/qa/407658.html