无论如何,是否可以在if语句中将字符串转换为条件:
例:
var condition = "a == b && ( a > 5 || b > 5)";
if(condition) {
alert("succes");
}
eval()
可能是更安全的替代方法Function()
。
var condition = "4 == 4 && ( 10 > 5 || 9 > 5)";
var evaluate = (c) => Function(`return ${c}`)();
if(evaluate(condition)) {
alert("succes");
}
eval()
是一个危险的函数,它以调用者的特权执行它传递的代码。如果您eval()
使用的字符串可能会受到恶意方的影响,则可能最终会在您的网页/扩展名许可的情况下在用户计算机上运行恶意代码。更重要的是,第三方代码可以看到eval()
被调用的范围,从而可能以类似Function
方式不易受到攻击的方式导致可能的攻击。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句