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

标签 javascript security iframe sandbox

假设我在 example.com 上有一个页面。此页面包含一个显示 sandbox.example.comiframe

---------------------------
| example.com             |
| ----------------------- |
| | sandbox.example.com | |
| |   (<canvas> + js)   | |
| ----------------------- |
---------------------------

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

我会将我的应用程序路由公开到 sandbox.example.com 的数量要少得多,因此同源策略应该阻止对任何敏感数据或操作的任何访问。诸如 session cookie 盗窃和经过身份验证的 ajax 请求更改密码之类的事情是我试图避免的问题类型。

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

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

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

最佳答案

存在与不受信任和不安全的 Javascript 相关的风险 - 无论它是否在 iframe 中运行。然而 Same Origin Policy指示沙箱中的任何脚本都不能干扰 example.com 中的任何内容。

关于javascript - 子域上的 iframe 是否提供足够的 JS 沙箱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415621/

相关文章:

javascript - 在 iOS6 上从相机上传图像的 HTML/JS

javascript - Imgur 上传添加到输入表单

security - 如何确保为具有编码文本的请求返回编码文本?

javascript - 缓存服务器响应(AngularJS,延迟)

javascript - Kendo 网格文本按列宽切割

javascript - 使用 ServiceWorker 的永久浏览器缓存

javascript - 来自客户端的 Meteor.userId - 更改显示用户电子邮件,行为正确吗?

javascript跨域iframe调整大小

firefox - 如何在 iFrame 中运行 Firefox 检查器?

javascript - 使 iframe/form 固定位置