java-为应用程序添加脚本安全性

假设我有一个用Java编写的现有应用程序,希望向其添加脚本支持.对于Groovy来说,这是微不足道的(与在任何动态语言的Iron系列中的.Net一样).

与添加支持无关紧要,它引发了有关脚本执行和安全性以及如何实现该安全性的一系列问题.

有没有人碰到任何有趣的文章/论文,或者对他们想分享的见解?特别是,我会对诸如执行上下文,脚本身份验证,脚本签名以及类似内容之类的体系结构方面非常感兴趣……您知道,这种东西可以阻止用户运行他们刚下载的任意脚本,从而成功地完善整个应用程序,同时仍然允许脚本有用且灵活.

快速编辑

我已经提到签名和身份验证为不同的实体,因为我将它们视为安全性的不同方面.

例如,作为应用程序的开发者/供应商,我分发了签名脚本.根据设计,此脚本合法地“破坏了数据”.就其性质而言,它仅应由管理员运行,因此绝大多数用户/系统进程应无法运行它.在这种情况下,在我看来,根据脚本执行的操作以及谁在运行该脚本,需要某种类型的安全性/身份验证上下文.

解决方法:

您可以查看有关安全性的文档:
http://groovy.codehaus.org/Security
基本上,您可以使用通常的Java安全管理器.

除此之外,还有一个示例应用程序展示了如何在编译时通过分析其AST(抽象语法树)来对代码进行自省,以便您可以允许/禁止某些代码构造等.这在起作用:
http://svn.groovy.codehaus.org/browse/groovy/trunk/groovy/groovy-core/src/examples/groovyShell

上一篇:Groovy ConfigSlurper()读取配置文件简易示例


下一篇:jmeter压测学习45-逻辑控制器之如果(If)控制器