Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果Java在服务器上评估Javascript,则会出现安全问题_Java_Javascript_Security_Rhino - Fatal编程技术网

如果Java在服务器上评估Javascript,则会出现安全问题

如果Java在服务器上评估Javascript,则会出现安全问题,java,javascript,security,rhino,Java,Javascript,Security,Rhino,如果我在服务器(使用Rhino Javascript引擎的Java webapp)上评估从浏览器提交的Javascript代码,它会带来安全风险吗 Javascript的评估只是为了知道它是否是有效的Javascript 我不希望评估会给我任何回报。我不希望它储存任何东西,或触摸任何东西。它应该做的就是告诉我用户提交了有效的javascript 如果它是引起安全问题的东西,我可以采取一些步骤来确保JavaScript不会对系统造成任何伤害吗 是的,它会带来安全风险,因为从Rhino内部的Java

如果我在服务器(使用Rhino Javascript引擎的Java webapp)上评估从浏览器提交的Javascript代码,它会带来安全风险吗

Javascript的评估只是为了知道它是否是有效的Javascript

我不希望评估会给我任何回报。我不希望它储存任何东西,或触摸任何东西。它应该做的就是告诉我用户提交了有效的javascript


如果它是引起安全问题的东西,我可以采取一些步骤来确保JavaScript不会对系统造成任何伤害吗

是的,它会带来安全风险,因为从Rhino内部的JavaScript可以访问Java运行时中的任何内容,包括(例如)所有
Java.io


您可以确保您对Rhino的所有呼叫都在基本上限制所有内容的SecurityManager的管辖范围内进行。JDK的ScriptEngine代码并没有内置的方法来实现这一点;我不知道Rhino使用Mozilla钩子时可以使用哪些工具。

有效的JavaScript可以用来破坏系统;由你来定义什么是有害的,什么不是有害的。我认为你需要重新考虑你的安全模型。发布更多关于您打算保护什么或打算防止什么的信息会有所帮助。如果您只是想确保输入的javascript有效,那么您只需要正确编译它?Rhino的JDK版本应该将脚本可以执行的操作限制为脚本启动时可用的权限。但是,默认情况下,它可以访问您的应用程序代码,这通常是不安全的。对,这就是我的意思-像web服务器这样的东西在没有限制性安全管理器的情况下运行是很常见的,即使有一个,它可能比您希望将其交给发布到公共URL的任何随机脚本更为宽松:-)