可部署的 Grails war 文件包含 groovy 文件以及 groovy.jar。
- 部署应用程序时是否有 groovy 代理在运行?
- 是否可以在运行时通过 Groovy 对应用程序进行动态修改?
- 如果是,如何防止这种情况?
编辑: 在 Grails 应用程序 war 部署在 Tomcat 上之后:是否有某种 Groovy Shell/进程/代理正在运行,有权访问系统的人可以连接到该系统?如果可能的话,他是否可以在不触及文件系统上的任何文件的情况下对应用程序进行动态修改?
最佳答案
您可以使用Console plugin它提供了基于 Web 的 Groovy Console/Grails Console 版本。与基于 Swing 的应用程序一样,它的作用域内有一个 ctx 变量,可让您访问应用程序的所有 Spring beans,并且它将在正在运行的 Web 应用程序的上下文中运行任意 Groovy 代码,可以访问GORM等
显然这很危险,所以一定要用security plugin来保护它。
我不久前写了一篇关于使用类似的基于网络的控制台(后来我将其合并到插件中)来修复正在运行的服务器中的错误的博客文章:http://burtbeckwith.com/blog/?p=155
关于security - Grails 和运行时动态修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6518437/