如果我在服务器(使用 Rhino Javascript 引擎的 Java Web 应用程序)上评估从浏览器提交的 Javascript 代码,是否会带来安全风险?
对 Javascript 进行评估只是为了知道它是否是有效的 Javascript。
我不期望评估能给我带来任何返回。我不希望它存储任何东西,或接触任何东西。它应该做的就是告诉我用户提交了有效的 javascript。
如果它会带来安全问题,我可以采取一些措施来确保 JavaScript 不会对系统造成任何损害吗?
最佳答案
是的,它会带来安全风险,因为从 Rhino 内部的 JavaScript 可以访问 Java 运行时中的任何内容,包括(例如)所有 java.io
类。
您可以确保对 Rhino 的所有调用都在 SecurityManager 的管辖下进行,该 SecurityManager 基本上限制了所有内容。对于 JDK 的 ScriptEngine 代码,没有内置方法可以做到这一点;我不知道 Rhino 可以使用哪些工具与 Mozilla hooks 一起使用。
关于java - 如果服务器上的 Java 评估 Javascript,则会出现安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6051329/