子域上的iframe是否提供了足够的JS沙箱?

时间:2013-07-02 00:24:51

标签: javascript security iframe sandbox

假设我在example.com上有一个页面。此页面包含显示iframe的{​​{1}}。

sandbox.example.com

沙箱将执行可能有潜在危险的脚本。沙箱将是我自己的JavaScript的混合,与来自其他来源的不受信任的JavaScript代码一起运行。

我会将更少的应用程序路由暴露给--------------------------- | example.com | | ----------------------- | | | sandbox.example.com | | | | (<canvas> + js) | | | ----------------------- | --------------------------- ,因此相同的原始策略应该阻止对任何敏感数据或操作的访问。像会话cookie被盗这样的东西,以及经过身份验证的ajax请求更改密码是我试图避免的问题类型。

我的想法是拥有一个由我提供的可扩展渲染引擎,该引擎由其他人的代码扩展,全部抛入单个页面渲染到单个画布。

那么这会被认为是安全的吗?如果您已登录sandbox.example.com并在example.com上运行iframe并且其中执行了不受信任的JS,那么您是否会面临任何类型的攻击?

并且子域是否足够?或者,如果它是一个完全不同的域,它会安全吗?

1 个答案:

答案 0 :(得分:1)

与不受信任和不安全的Javascript相关的风险 - 无论是否在iframe中运行。但是Same Origin Policy要求沙箱中的任何脚本都无法干扰example.com中的任何内容。