有没有办法对一些javascript进行沙盒处理,这样它就不能以任何方式将数据发送到服务器
Is there any way to sandbox some javascript so that it can not in any way send data to a server
的目的是运行一些用户创建的JavaScript,该JavaScript处理不应逃脱沙箱的敏感数据。我在这里的目的不仅是对正在运行的脚本进行沙盒处理,而且还要对它正在处理的数据进行沙盒处理。
我可以设置子域或 Web 工作者,并使用 sendMessage 运行脚本并将结果发布回父级。我可以在 iframe 上使用新的 html5 沙盒标志。所有这三种方法都可用于将脚本与父域隔离开来,但我找不到锁定脚本的方法,使其无法将数据发送到服务器。
例如,在 Web worker 上运行的脚本可以将 ajax 请求与接受跨域请求的服务器一起使用,以将数据从沙箱中分离出来。
不能切断脚本的任何本机传输。
例如,Worker 只能访问一个本机传输 XMLHttpRequest(因为无法访问文档 ->没有带有 src、链接、表单的节点),您可以重新定义它,即window.XMLHttpRequest = function () {return 1}
和脚本无法将数据发送到服务器。
但是只要运行delete window.XMLHttpRequest
,你就会设置本机XMLHttpRequest。它在严格模式下工作正常(ECMAScript-262 ed. 5/6)
(function () {
'use strict';
window.XMLHttpRequest = function () {return 1};
console.log(window.XMLHttpRequest);
delete window.XMLHttpRequest;
console.log(window.XMLHttpRequest);
})()
关于 HTML5 iframe 选项。如果您使用sandbox="allow-scripts allow-same-origin allow-pointer-lock"
来自 iframe 的任何脚本都无法发送跨域请求(XMLHttpRequest、postMessage、WebSocket、WebRTC、Server-Sent Events...任何)。如果您需要拒绝跨域请求 - 就是这样。
- 如何按id查找两个类中任一类的子元素
- HackReactor,编码窗口现在可以访问一个名为“”的对象;招生;使用名为“;showApp”;.调用此方法时不带任
- 是否有任何用Javascript编写的开源JSDoc解析器
- 禁用负责任设计中的元素
- 在 JavaScript 中使用正则表达式在单词的任一侧添加空格
- 祖尔布基金会 使用 12 列布局的任一侧的空间
- 任何在Phonegap中跟踪主页按钮按下事件的可能性
- 任何在javascript中捕获上下文菜单“粘贴”的方法
- 如何使用任一类jquery搜索父级
- javascript预加载任何在chrome中不起作用的图像
- toFixed是'Don’不要做任何事
- 用JS转换任何以hashtag开头的东西.但前提是超过3个字符
- Gradle exec任务在用Karma运行javascript单元测试时挂起
- 任何在Android中与WebView通信的方式
- 任何以0开头的号码都被认为是电话号码
- 如何在不支持HTML5或flash的任天堂3ds浏览器中播放视频
- SASS任务在gulp with sourccomments: 'map'生成'断言失败'
- 在发射下键时禁用任天堂3DS滚动功能
- 在Backbone中,model.get('foo')和model.attributes.foo之间的任
- Fine uploader Async任务在Chrome中工作,但在IE11中不工作