我需要在javascript中将用户编写的代码片段相互隔离。目前,我能想到的最有趣的事情就是闭包:
function executor() {
window.alert('Hello!');
size0 = document.getElementById("load").innerHTML;
window.alert('zero:' + size0);
(function(document){
// document = {"innerHTML":"empty"};
window.alert('Hello again!');
size1 = document.getElementById("load").innerHTML;
window.alert('first:' + size1);
(function(window){
size2 = document.getElementById("load").innerHTML;
window.alert('Hello now!');
window.alert('second:' + size2);
// window.alert('second:' +document.getElementById('load').size());
})("empty");
})("empty");
}有没有更好更安全的方法来做这件事?我可以关闭像数组这样的各种东西的prototype吗?
发布于 2009-11-10 01:21:05
据我所知,实现沙箱javascript的最简单、最好的方法是通过iframes。这里有一个可能会有帮助的blog post。
发布于 2009-11-10 01:40:11
你可以看看谷歌的Caja。它是为从第三方安全地运行脚本而设计的。
https://stackoverflow.com/questions/1702415
复制相似问题