【发布时间】:2011-06-29 09:28:31
【问题描述】:
可部署的 Grails 战争文件包含 groovy 文件以及 groovy.jar。
- 部署应用程序时是否运行了 groovy 代理?
- 是否可以在运行时通过 Groovy 对应用程序进行动态修改?
- 如果是,如何预防?
编辑: 在 grails 应用程序战争部署之后,让我们说在 Tomcat 上:是否有某种 Groovy Shell/Process/Agent 正在运行,有权访问系统的人可以连接到?如果这是可能的,他能否在不触及文件系统上的任何文件的情况下对应用程序进行动态修改?
【问题讨论】:
-
另外,什么样的修改?仅对
development环境启用重新加载控制器/服务。不能禁用通过metaClass进行的类修改(好吧,您可以使用Groovy++进行编译并严格键入每个类 - 这样就不会有任何动态调用)。但是即使在 Java 中也可以在运行时重新加载一个类(并加载修改后的版本),因此没有单一的方法可以“防止”每一种运行时修改。
标签: security grails groovy jvm