【发布时间】:2010-11-01 23:46:31
【问题描述】:
我正在开发一个从 domain.ext 提供的网络应用程序。此 Web 应用程序使用基于 cookie 的会话,并为用户提供了在子域上托管包含自定义 JavaScript 的网页的能力,例如。 sub1.domain.ext,sub2.domain.ext。子域不使用 cookie 支持的会话。
鉴于此设置,是否可以确保以下几点?:
- sub1.domain.ext 的用户无法读取或写入 domain.ext 的 cookie(即 domain.ext 会话不能被嵌入在 sub1.domain.ext 页面中的 JavaScript 窃取或劫持)。
- 嵌入在 sub1.domain.ext 页面中的 JavaScript 无法读取或写入 sub2.domain.ext 的 cookie,反之亦然。
我已经测试了一些东西,例如,通过在 sub1.domain.ext 的窗口中运行 document.domain = 'domain.ext' 似乎可以与来自 sub1.domain.ext 的 domain.ext 的 cookie 进行交互。有没有办法防止这种情况发生,例如在从 domain.ext 设置域时指定某种策略?
【问题讨论】:
-
您可以强制您的
domain.ext重定向到www.domain.ext。这应该保护在那里创建的 cookie,因为它被视为另一个子域.. (untested) -
谢谢,盖比。我认为这就是我最终不得不做的事情,尽管我喜欢将我所有的 URL 标准化为非 www 变体(我认为这很丑,但这只是我的看法)。
-
我也更喜欢非 www。但是对于这种情况,你不能避免它..
-
我怕你会这么说!谢谢你的帮助:)
标签: javascript cookies