最后更新:2022-08-02 19:46:35 手机定位技术交流文章

同一套前端ERP程序部署了多个帐户,这两个帐户有相同的协议、IP和不同的端口。
http://xxx.xx.x.xxx:8002
http://xxx.xx.x.xxx:9003
当同一用户在同一浏览器(Chrome)上运行时,从两个不同的端口打开程序时,跳到登录页有问题。
检索结果显示,有关的cookie问题存在。 检索过程如下:
8002然后,进入“饼干”sessionId=b130ffea-c9dc-46cf-b37d-e28db9ce8ea3;。此时8002标签页可以与服务端进行正常通信.9003访问Cookie的程序。sessionId=b74fe72d-822e-410a-965f-125540156fd7;。此时9003标签页可以与服务端进行正常通信.8002标签页,现在与后端通信,要求载入的cookie成为9003 cookiesessionId=b74fe72d-822e-410a-965f-125540156fd7.程序跳到登录页。前面的程序不会对cookie做任何事情。 请注意,在第二个标签页上9003登录后,第一个标签页8002饼干已经盖上了.
搜索信息后,知道 cookie 不会区分终端和LocalStorage和 SessionStorage。
HTTPcookie端口是否具体
1.介绍
由于历史原因,cookie包含大量的安全和隐私信息。例如,服务器可以指示指定的cookie用于“安全”连接,但当有活跃的网络攻击者时,安全属性不提供完整性。 同样,在指定的主机上的Cookie被共享在该主机的所有端口之间,甚至传统的网络浏览器使用的“共同源策略”也隔离了通过不同端口检索的内容。
…8.5 弱机密性
Cookie不提供端口隔离。如果在端口上运行的服务中可读的cookie,也可以从同一服务器的另一个端口运行的服务中读取Cookie。如果服务可以在一个端口上编写Cookie,同样的服务器的另一个端口上运行的服务也可以编写Cookie。出于这个原因,服务器不应在同一主机的不同端口运行相互不信任的服务,并使用Cookie存储安全敏感信息。
[Google]浏览器安全手册
默认情况下, cookie 范围仅限于当前主机名的所有 URL - 而不是绑定到端口或协议信息.
其它
当您在http://localhost:300和http://localhost:400之间跳过时,Chrome发送相同的cookie,所以每个服务不能理解cookie并生成一个新的cookie。但如果访问http://localhost:3000和http://127.0.0.1:4000,就不会有问题。因为Chrome浏览器保持一个cookie本地主机,一个用于127.0.0.1
遇到这个问题,首先想到的是去 mdn 搜索 Cookie 功能,了解到影响Cookie 的作用域两个属性:Domain 和 Path 。在这个问题上我们没有设置域名和路径,我们检查了路径的默认值是 orgin 相同的域(浏览器相同的源策略),这使我很迷茫,现在端口不同,不就是不同域吗?答案就是上面说的: Cookie功能不区分协议和端口,也就是说,只要IP地址相同,不同的协议或不同的端口,所有饼干都覆盖了。
本文由 在线网速测试 整理编辑,转载请注明出处。