今天在Docker上运行两个SpringBoot容器,其中一个容器的界面通过iframe调用另一个容器的界面,然后发现浏览器没用为它们分别创建JSESSION Cookie。我猜测Edge没用严格遵守同源的规则。但是在127.0.0.1上却能分别创建。不知道怎么回事。
那些打广告的别来!
Edge将同一主机不同端口视为同源
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
恐怖如斯恐怖如斯啊 2024-12-25 23:06关注以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
你的问题是关于Edge浏览器在Docker环境中对同源策略的处理,这是非常具有技术性的讨论。对于浏览器而言,如果两个网站来自同一个域名(即使是不同的端口),它们通常被视为同源,这意味着浏览器会允许跨站共享数据,如cookies等。然而,在某些情况下,特别是涉及到不同的端口时,浏览器可能会实施更严格的安全策略。这可能是你遇到的问题的原因。关于你提到在Docker环境中Edge浏览器没有严格遵守同源规则的问题,以下是我对你问题的一些可能的解答和考虑:
- 域名与端口的关系:在某些浏览器中,例如Chrome和Edge等,尽管你的服务是在localhost(例如本地测试时),如果运行在的不同端口上(即使是localhost),那么默认就被视为不同站点,不是同源站点。不过,这并不意味着浏览器没有遵守同源策略,而是它们对于端口号的敏感性导致了这种表现。如果你需要共享cookies或其他数据,你可能需要设置适当的CORS策略或配置你的应用程序来处理这种情况。
- Docker配置和网络设置:在Docker环境中运行应用程序时,你需要确保容器之间的网络通信正确配置。例如,如果其中一个容器通过域名(而不仅仅是IP地址)来访问另一个容器中的应用程序或服务,那么在应用程序中使用cookie或者访问API的行为就会受到网络配置的影响。在这种情况下,你可能需要确保你的Docker网络配置正确,并且容器能够正确地解析域名和端口号。
- Edge浏览器的特定行为:虽然大多数现代浏览器在处理同源策略时遵循相似的规则,但每个浏览器可能会有一些细微的差别。这可能是导致你在特定情况下遇到问题的一个原因。如果你在其他浏览器中遇到问题相同的限制,这可能指向更广泛的配置问题或应用逻辑问题。然而,如果只有Edge浏览器表现出这种行为,那么可能需要查看Edge浏览器的特定设置或更新情况。有时候浏览器的更新可能会改变它们处理同源策略的方式。因此你可以检查你的Edge浏览器是否是最新的版本。如果问题仍然存在,可能需要考虑重新配置应用或调整代码以遵守同源策略的要求。对于这种情况可能需要编写额外的代码来处理cookie在不同的端口之间的共享问题。这通常涉及到设置适当的CORS策略或使用其他技术来管理跨源请求和数据共享。另外请注意不要忽视安全问题,确保你的应用程序遵循最佳的安全实践来管理敏感信息(如cookies)。总之这个问题可能涉及到多个方面包括浏览器行为、网络配置以及应用逻辑等需要你综合考虑并采取相应的措施来解决这个问题。
解决 无用评论 打赏 举报