为了账号安全,请及时绑定邮箱和手机立即绑定

HTTP cookie端口是否特定?

/ 猿问

HTTP cookie端口是否特定?

天涯尽头无女友 2019-10-12 17:07:49

HTTP cookie端口是否特定?

我在一台机器上运行了两个HTTP服务。我只是想知道他们是否共享他们的cookie或者浏览器是否区分了两个服务器套接字。


查看完整描述

3 回答

?
ABOUTYOU

当前的cookie规范是RFC 6265,它取代了RFC 2109RFC 2965(这两个RFC现在都被标记为“历史性”)并且正式化了cookie的实际使用语法。它明确指出:

  1. 介绍

...

由于历史原因,cookie包含许多安全和隐私信息。例如,服务器可以指示给定的cookie用于“安全”连接,但Secure属性在存在活动网络攻击者时不提供完整性。 同样,给定主机的cookie在该主机上的所有端口之间共享,即使Web浏览器使用的通常的“同源策略”隔离了通过不同端口检索的内容。

并且:

8.5。弱机密性

Cookie不提供端口隔离。如果cookie在一个端口上运行的服务可读,则cookie也可由在同一服务器的另一个端口上运行的服务读取。如果cookie在一个端口上可由服务写入,则cookie也可由在同一服务器的另一个端口上运行的服务写入。出于这个原因,服务器不应该在同一主机的不同端口上运行相互不信任的服务,并使用cookie来存储安全敏感信息。



查看完整回答
反对 回复 2019-10-13
?
哆啦的时光机

根据RFC2965 3.3.1(浏览器可能会或可能不会遵循),除非通过标头的port参数明确指定端口,否则Set-Cookiecookie可能会也可能不会发送到任何端口。

谷歌的浏览器安全手册说:默认情况下,cookie范围仅限于当前主机名上的所有URL - 而不是绑定到端口或协议信息。以后有些行没有办法将cookie限制为单个DNS名称[...]同样,没有办法将它们限制在特定端口。(另外,请记住,IE根本不会将端口号计入其同源策略。)

因此,依赖任何明确定义的行为似乎并不安全。



查看完整回答
反对 回复 2019-10-13
?
慕桂英4014372

这是一个非常古老的问题,但我想我会添加一个我用过的解决方法。

我的笔记本电脑上运行了两个服务(一个在端口3000上,另一个在4000上)。当我在(http://localhost:3000http://localhost:4000)之间跳转时,Chrome会传入相同的cookie,每个服务都无法理解cookie并生成新的cookie。

我发现,如果我访问http://localhost:3000http://127.0.0.1:4000,问题走了,因为Chrome浏览器保持一个cookie本地主机,一个用于127.0.0.1。

同样,在这一点上没有人可以关心,但这对我的情况很容易和有帮助。



查看完整回答
反对 回复 2019-10-13

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信