Javascript 是否可以隔离domain.ext、sub1.domain.ext和sub2.domain.ext’;谁是彼此的饼干?
我正在开发一个由domain.ext提供服务的web应用程序。此web应用程序使用基于cookie的会话,使用户能够在子域(例如sub1.domain.ext、sub2.domain.ext)上托管包含自定义JavaScript的网页。子域不使用cookie支持的会话 鉴于此设置,是否可以确保以下各项:Javascript 是否可以隔离domain.ext、sub1.domain.ext和sub2.domain.ext’;谁是彼此的饼干?,javascript,cookies,Javascript,Cookies,我正在开发一个由domain.ext提供服务的web应用程序。此web应用程序使用基于cookie的会话,使用户能够在子域(例如sub1.domain.ext、sub2.domain.ext)上托管包含自定义JavaScript的网页。子域不使用cookie支持的会话 鉴于此设置,是否可以确保以下各项: sub1.domain.ext的用户无法读取或写入domain.ext的cookie(即,sub1.domain.ext页面中嵌入的JavaScript不能窃取或劫持domain.ext会话)
我已经测试了一些东西,例如,通过在sub1.domain.ext的窗口中运行
document.domain='domain.ext'
,似乎可以从sub1.domain.ext与domain.ext的cookies交互。是否有某种方法可以防止这种情况发生,例如在从domain.ext设置域时指定某种策略?您不能通过设置domain
参数来指定cookie仅对example.com
有效。如果您设置了domain=example.com
,它将对*.example.com
有效
在example.com
上设置cookie而不使用domain
参数在大多数浏览器中仅为example.com
设置cookie。但不是我
因此,如果您想要拥有具有单独cookie上下文的子域,您应该仅从
www.example.com
为您的站点提供服务。正如Gaby所说,通过对www
版本进行301重定向,当然您仍然可以通过example.com
支持访问。您可以强制您的domain.ext
重定向到www.domain.ext
。这应该保护在那里创建的cookie,因为它被视为另一个子域。。(未经测试)谢谢,加布。我想这就是我最终不得不做的,尽管我喜欢将我所有的URL标准化为非www变体(我认为这很难看,但这只是我的观点)。我也更喜欢非www。但是对于这种情况,你无法避免……我怕你会这么说!谢谢你的帮助:)谢谢你,博宾斯。我在想,我们可以在domain.ext上为面向公众(cookie/session–less)的网站提供服务,www.domain.ext 301–连接到domain.ext。然后,我们可以在manage.domain.ext或panel.domain.ext.Yes上托管实际应用程序,如果domain.ext
从不设置cookies,则裸域就可以了。不过有一件事需要注意:虽然sub1.domain.ext
无法从sub2.domain.ext
读取cookie,但它可以在domain.ext
上设置cookie,如果sub2.domain.ext
尚未设置更具体的cookie,则该cookie将由sub2.domain.ext
读取。