如何在我自己的域中对iframe实施相同的原始政策iframe限制?

时间:2011-09-16 08:33:42

标签: security iframe web same-origin-policy

我是http://labcss.net的创建者,我有一个我需要解决的安全问题。 labcss类似于jsFiddle,只有jsFiddle在sanbox中执行他们的Javascript代码。由于我需要大量操作iframe的内容并与之交互,因此我无法使用“运行”按钮方法将数据发送到iframe监狱。

我需要强制执行Javascript限制,以便在iframe中运行的内部Javascript(尽管在同一个域中)将在我的域外执行,因此我不会遇到XSS问题。 (我确实需要执行Javascript)。

感谢您的建议。

2 个答案:

答案 0 :(得分:1)

您可以使用Google Caja,Microsoft WebSandbox,Facebook FBJS,AdSafe或(在非常现代的浏览器上)SES。这些都提供了一个安全的Javascript沙箱。但是,请注意:它们有相当数量的活动部件。

Caja和WebSandbox允许您编写标准Javascript,没有任何限制,您可以使用许多现有的Javascript库。 FBJS和AdSafe让你用不同的更受限制的语言写作:FBJS在Facebook的Javascript变体中,AdSafe在Javascript的有限子集中有自己的库。

答案 1 :(得分:0)

您还可以找到HTML5 iframe沙箱属性。这是spec,但最好的描述可能是here

这似乎得到了ChromeIE10FireFoxSafari的支持。

规范说如果“allow-same-origin”属性设置,“内容将被视为来自唯一来源。”这应该可以防止您的子iframe访问父DOM的任何部分。