使用Javascript的eval()可安全用于输入简单的计算?(Is using javascri

2019-07-17 13:15发布

我想允许用户在文本输入进行简单的计算,从而使输入2 * 5将导致10,我用一个空字符串代替一切,但数字,然后使用eval使计算()。 这似乎更容易和可能更快,然后手动解析它。

它经常被说的eval()是不安全的,所以我想听听有没有在这种情况下使用其任何危险或缺点。

function (input) {
  value = input.value.replace(/[^-\d/*+.]/g, '');
  input.value=eval(value);
}

Answer 1:

这是安全的,不会因为你是消毒,而是因为它的所有用户,并进入了自己的浏览器中运行。 如果他们真的想进入恶意代码,他们可以通过使用Firebug或网页检查,甚至使用书签也无妨。 值得庆幸的是,有没有什么可以与除锁定了自己的浏览器的JavaScript恶意做:)



Answer 2:

这一点,因为你正在做输入验证你把它变成EVAL之前是安全的。

此外,你也应该补充:

()%



文章来源: Is using javascript eval() safe for simple calculations in inputs?