BAAS避免了代码注入

我创build了一个私人BAAS(作为服务的后端)。

它可以使用eval()根据不同的任务逻辑执行不同的JavaScript代码。

我testing了执行javascriptstring和原生nodejs javascript代码的性能。 nodejs和eval(js)之间没有显着的性能差异。

我的代码:

var date1=new Date(); //******************javascript code will be executed by eval() var a=0; var j=100000000; for (var i=0; i<=j;i++){ a=a+i*i*30+i/2+i/2; } console.log(a); //****************** var date2=new Date(); var date3=date2.getTime()-date1.getTime() ; console.log(date3); console.log("--------------------------"); var date1a=new Date(); //******************javascript code executed by eval() eval("var a=0; var j=100000000; for (var i=0; i<=j;i++){ a=a+i*i*30+i/2+i/2; } console.log(a);"); //****************** var date2a=new Date(); var date3a=date2a.getTime()-date1a.getTime() ; console.log(date3a); 

控制台显示:

 1.0000000150367534e+25 13339 -------------------------- 1.0000000150367534e+25 13362 

我把evalstring放在另一个javascript文件或数据库中,性能结果是一样的。

因为它是一个私人的BAAS,eval()执行的JavaScriptstring是安全的。

但我不知道这些公共BAAS(如Parse.com)是否也使用eval()来执行服务器端用户cutomized的JavaScript代码。

如果确定,是否有一个工具来检测代码注入,如

 eval("rm -rf /etc/important-file;") 

在eval()?

如果没有,有没有其他的方式来安全地执行用户/第三方的JavaScript代码串。

您的评论欢迎