我使用javax.scripting
来添加对在服务器端运行任意用户上传的JavaScripts的支持。显然,我想确保这些脚本的安全!
Rhino本身有一个在运行时保护脚本的框架。然而,javax.scripting
的文档并没有提到脚本可用的安全性、权限或限制类。那么,这只是javax.scripting
应用程序接口中的一个巨大漏洞,因为它没有提供一个框架来保护它执行的脚本吗?
我不想直接使用Rhino,因为我最初尝试过,但在将Java实例暴露给运行的脚本时遇到了一些问题。javax.scripting
框架(在幕后使用Rhino )实现了这一点,并简化了在多线程服务器中运行脚本的过程。
我想将可以在运行脚本中访问/实例化的Java类列入白名单。有没有人能给我举个例子或文档来说明如何做到这一点?
发布于 2015-02-18 17:47:40
仅供参考,这在javax.scripting的新Java8实现中现在是可能的,它使用了一个名为Nashorn的新引擎。请参阅Secure Nashorn JS Execution
https://stackoverflow.com/questions/1347099
复制相似问题