有没有办法通过java.eval()方法减轻代码注入的缺点?

有没有办法通过java.eval()方法减轻代码注入的缺点?,java,security,Java,Security,eval()用于执行系统生成的JS代码。Veracode显示代码注入漏洞。 引述上述连结: 主要有两种兼容解决方案: 白名单 针对代码注入漏洞的最佳防御措施是防止在代码中包含可执行用户输入 安全沙箱 另一种方法是创建一个安全的沙箱 对不起,我弄糊涂了,java有一个eval函数?或者你指的是Javascript?如果你直接执行外来代码,为什么不考虑代码注入?@DownloadPizza他可能指的是ScriptEngine#evalYes,Java eval方法…@dan1st基本上它从网页上获取

eval()用于执行系统生成的JS代码。Veracode显示代码注入漏洞。

引述上述连结: 主要有两种兼容解决方案:

  • 白名单 针对代码注入漏洞的最佳防御措施是防止在代码中包含可执行用户输入
  • 安全沙箱 另一种方法是创建一个安全的沙箱

  • 对不起,我弄糊涂了,java有一个eval函数?或者你指的是Javascript?如果你直接执行外来代码,为什么不考虑代码注入?@DownloadPizza他可能指的是
    ScriptEngine#eval
    Yes,Java eval方法…@dan1st基本上它从网页上获取输入,在后端生成适当的JS函数,并进一步存储在数据库中。下一次用户想要使用相同的功能时,js函数将从db中提取并执行。有很多代码块需要添加到白名单桶中。使用java security manager保护沙箱,根据我的记忆,我们可以有一个security manager实例/jvm。如果我们提供了对ScriptEngine#Eval的受限访问,则会妨碍其他需要访问的后续代码,如文件、网络等。