奇怪的需求带来了一些麻烦,第三方页面嵌入到iFrame内时带来了一堆cookies的安全策略方面的问题。
本文内容
测试主流浏览器在不同Cookies策略下的Cookies读写情况。
测试的浏览器包括
- Safari 5.1.5 for Mac(默认,阻止第三方Cookies)
- Safari 5.1.5 for Mac(不阻止Cookies)
- Safari 5.1.2 for XP(默认,阻止第三方Cookies)
- Safari 5.1.2 for XP(不阻止Cookies)
- Firefox 11.0 for XP(默认)
- Firefox 11.0 for XP(不接受第三方Cookie)
- Chrome 18 for XP(默认)
- Chrome 18 for XP(阻止第三方Cookie 和网站数据)
- Chrome 18 for Mac(默认)
- Chrome 18 for Mac(阻止第三方Cookie 和网站数据)
- IE6(默认)
- IE7(默认)
- IE8(默认)
测试结果概述
首先要指出,Safari 默认的Cookie策略是阻止第三方Cookie,但是在Mac和XP两个系统下,呈现出两种不同的效果。Safari for XP 接受了服务端设置的 cookies 并且可以读取,但是 Safari for Mac 丢弃了接收到的 Cookies。
与 Safari 同为 Webkit 核心的 Chrome 的默认设置为接受第三方的 Cookies,在默认设置下,第三方的Cookie成功被设置。与此类似地是 Firefox 的默认设置,能够接受所有第三方 Cookie。
当 Chrome 和 Firefox 开启AT-field(哦…就是阻止第三方Cookie)时,情况跟 Safari 截然不同。Chrome 和 Firefox 不仅丢弃了服务端设置的 Cookie,也会禁止浏览器脚本去读取 Cookie。注:若之前设置了Cookie,旧Cookie会保留,并且不能被读取。
ie基本一致,会阻止第三方Cookies,但是可以通过P3P头来解决问题。
/*————发现wordpress 里面居然有这样一篇草稿,就翻出来后续日子慢慢补全吧————-*/can k
参考资料:http://grack.com/blog/2010/01/06/3rd-party-cookies-dom-storage-and-privacy/
站内搜索