如何限制对我保存在 cookie 中的字符串的访问?

how to limit access to strings i save in cookies?

如果我的网站使用 document.cookie 将字符串写入 cookie,是否会有任何网站能够读取这些字符串或只能读取创建它的网站?如果有人可以阅读它,有没有办法限制对字符串的访问?这是 javascript.
中的一个问题 编辑: 如果第三方读取我的 cookie,他们不应该 edit/delete 我没有太大问题。黑客能做到吗?

不能保证阻止其他人访问 cookie。所以,如果数据是敏感的,最好在服务器端处理它,不要存储在 cookie 中

只有相同的域(即 http://thisisasubdomain.domain.com)应该能够读取 cookie;没有办法为不同的网站请求 cookie(当然,除了安全漏洞,浏览器总是试图修补)。请注意,浏览器的用户 可以 读取 cookie,因此不要在其中放置任何对用户 保密的内容 ,例如重要的解密密钥。

HTTP 是无状态协议,cookie 的概念应运而生,目的是为了在多个网页上保持用户会话的完整性。也就是说,Cookie 数据与创建它的网站的域名相关联,因此只能由该网站访问。 cookie 服务由浏览器实现,唯一可能影响的安全威胁是

  • 浏览器对 cookie 的错误执行:这是所有浏览器安全测试中相当常见的测试用例,因此并不是那么常见。
  • DNS 中毒:这可以通过模仿实际创建 cookie 的网站来解决。使用 HTTPS 可以轻松解决这个问题。

关于 Cookie 的维基百科文章不言自明,提到了 access/steal cookie 数据的可能方法列表 here.

在浏览器中,在 a.com 上创建的 cookie 仅可用于 a.com 上的其他页面。它不能被其他域中的页面访问。这是cookie的一个非常具体的设计原则。创建cookie时,可以单独控制cookie是否也有路径限制(只能被a.com上的部分页面访问)。

您还可以控制子域是否可以访问您的 cookie,例如 sub.a.com。有关子域访问的详细信息,请参阅 this answer

同样,cookie 只会发送到服务器 a.com,不会发送到任何其他服务器。但是,如果您没有使用 https,那么您应该知道,每次您发出 a.com.

请求时,cookie 都会以纯文本形式通过网络传输。

Cookie 数据本身由浏览器存储在用户的本地硬盘驱动器上,因此可以从浏览器外部访问 cookie(通过本地应用程序,而不是从浏览器内部访问),具体取决于浏览器和 OS 执行。如果你真的希望没有外部代理能够获取数据,那么(正如其他人所说),只将数据保留在服务器上。