要将JavaScript字符串解释为JavaScript本身,您应该使用eval
函数......但请注意我的警告,如果有任何形式的用户输入,或者如果您需要复杂的调试,那么您将运行进入一些墙壁,它会受伤。
JavaScript的eval
需要字符串输入并对其进行解释,就这么简单......这里有一个例子:
var test = "var example = 5;";
eval(test);
console.log(example);
就这么简单......
下面是一些例子,其中的eval可能很危险!
比方说,你有出于某种原因,下面的代码:
dbModule.syncConnection(function(database){
eval("var test = '" + someUserInput + "'");
});
有了这个,用户可以轻松地绕过你已经通过输入这样的设置:
"'; database.query('DELETE EVERYTHING MWAHAHA'); '"
的eval
函数然后会变成:
var test = ''; database.query('DELETE EVERYTHING MWAHAHA'); ''
...所以这只是一个简单的例子如何eval
可能是危险的。
否则,就没有真正解释之前检查JavaScript的任何其他安全的方式,除非你通过串自己运行和禁止某些可能的攻击....
但请记住,任何可能出错会出错。而用户输入则有无限的可能性。
正在使用eval()函数评估代码是否可以接受?我认为它会给你同样的结果。 –