相关疑难解决方法(0)

为什么使用JavaScript eval函数是一个坏主意?

eval函数是一种动态生成代码的强大而简单的方法,那么有什么警告呢?

javascript security eval

522
推荐指数
14
解决办法
25万
查看次数

Javascript沙盒?

有没有可能到沙盒用户提交的Javascript通过覆盖各种功能,例如alert,window.locationeval

我不是在寻找一个完美的解决方案.我敢肯定有些人仍然会找到一种方法来重新排列div来拼出脏话或恶意的东西,但如果我可以100%可靠地禁用页面重定向,我会非常高兴.

我在Chrome中试过,并做了类似的事情

context={}; //use this to prevent `this` from being `window`
context.f=function(){
  var window=null,location=null,eval=function(){};
  console.log(window); //also the other two
};
context.f();
Run Code Online (Sandbox Code Playgroud)

似乎很有希望 如果我console用用户提交的代码替换该行(检查平衡),这是一个荒谬的坏主意还是一个有点不好的主意?在Chrome上,我仍然可以通过this功能和重新定义来解决问题,但这对我来说是可以接受的.

javascript

14
推荐指数
1
解决办法
7932
查看次数

如何安全地在浏览器中运行用户提供的Javascript代码?

想象一下我想要不断调用用户提供的Javascript代码的场景,如下例所示,其中getUserResult是某个用户(非我自己)编写的函数:

for (var i = 0; i < N; ++i) {
    var x = getUserResult(currentState);
    updateState(currentState, x);
}
Run Code Online (Sandbox Code Playgroud)

如何在浏览器和/或Node.js中执行这种代码,没有任何安全风险?

更一般地说,如何执行不允许修改甚至读取当前网页或任何其他全局状态的Javascript函数?是否有类似浏览器内的"JS虚拟机"?

JSFiddle如何确保您不能运行任何恶意代码(至少它可能会破坏您的登录名,在页面生命周期内运行机器人,如果不做更糟糕的事情)?或者它根本不确定?

javascript security xss virtual-machine

12
推荐指数
2
解决办法
3671
查看次数

标签 统计

javascript ×3

security ×2

eval ×1

virtual-machine ×1

xss ×1