eval()
这样的顽皮分子,但不幸的是,有些人可能会因此而滑倒<iframe>
从 mysite.com 运行到单独的域或子域仍然可以像加载全新网站一样有效吗?答案 0 :(得分:0)
同源策略(SOP)适用于子域,端口,协议和域。
如果其中一个属性存在差异,SOP将阻止访问。
只要您不在主页上使用document.domain,子域名就会获得SOP保护。如果您在主页面中使用document.domain
,则脚本可以在iframe
中执行相同操作并绕过SOP。
现在,如果您想在iframe之间启用一些安全通信,那么如果您定位现代浏览器和移动设备,则可以使用window.postMessage
。
对于旧浏览器,有一些技巧可以做,例如the window.name trick
这不会阻止跨站点脚本(使用来自iframe的当前有效Cookie对您的域进行POST)。您需要使用一个秘密令牌,只有主页中的javascript知道并且将为每个请求发送。
答案 1 :(得分:0)
最好的方法是在适当的沙箱中运行它,而不是去除一些代码。我认为您可以执行delete eval;
或eval = null;
之类的操作。您可以通过delete document
或document=null
或delete document.cookie
获得额外的运气。当然,在各种浏览器上进行测试。
编辑:还可以考虑使用“httponly”Cookie,它(在许多浏览器上)阻止在JavaScript中访问它们。它最初是IE扩展,但已被并入大多数主流浏览器IIRC。
答案 2 :(得分:-1)
是的,子域名是相同的,但域cookie的cookie除外。