HTTPS能登陆,HTTP不行
同一个服务器既支持HTTPS,又支持HTTP。
登陆认证非常典型,即服务端通过Set-Cookie头设置-http-session-到浏览器的cookie,浏览器请求时自动携带这个cookie完成认证。
现在发现一个现象:HTTPS先登陆,再通过HTTP无法登陆,反之则都能登陆。
研究发现,这是由于cookie的安全标志secure引起的。
1.HTTP和HTTPS是同一个domain,cookie是共享的。
2.如果没有secure标志,HTTPS登陆后,HTTP页面请求时可以自动携带和HTTPS相同的cookie。
3.由于有secure标志,HTTP无法读取HTTPS的cookie。
4.HTTP也无法设置自己的cookie,因为和HTTPS是同一个domian。
5.由于上述两点,HTTP便无法登陆。
6.各家浏览器实现也不一样,目前发现谷歌内核的浏览器有此问题,IE没有。
试了果然如此。。。。。。
https://www.cnblogs.com/real-bert/p/14822046.html
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/5443.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~