使用java脚本API查找和销毁坏/恶意java脚本代码

spe*_*0ne 1 javascript java scripting

我正在处理一个servlet(在tomcat上运行),它接收包含Java Script代码的请求,并使用java脚本API框架评估/运行代码并将答案返回给用户.

由于我们正在处理用户生成的代码,因此代码可能是一个很好的代码,也可能是错误的代码.作为一个坏代码的例子可以是while(true); 这将无休止地循环在服务器中占用不必要的资源

我的问题

1)我怎么能发现一个糟糕的代码?2)一旦被识别为坏/恶意代码,停止运行的最佳方法是什么?

谢谢

And*_*yle 7

我的问题是:什么算不好代码

如果你不能提出一个正确的定义什么算作坏代码,你不能希望能够检测到它.既然这可能是你的问题的真正含义,我会提出我的答案 - 没有办法做到这一点.

即使是一个看似微不足道的事情,例如一个程序是否会终止也无法提前确定,我希望任何坏代码的定义都是无法终止的.

因此,在我看来,你有一个主要的选择:信任你的用户(或者不信任他们,不运行任何东西).

东西可能工作,否则是在严格的沙箱中运行的脚本,并在适当的时间量之后终止它,如果它尚未运行完毕.这在很大程度上取决于你的情况是什么是可以接受的.