我计划将 Groovy 脚本引擎集成到我的游戏中,这样它将为游戏提供良好的可修改性,但是如何防止玩家编写邪恶的脚本,例如删除 C: 驱动器上的所有文件?
Groovy 默认包含像 java.io.File
这样的库,因此一旦他们决定编写此类脚本,这将非常容易。
我想我无法阻止用户编写类似 while(1==1){}
的内容,但无论如何至少不允许他们允许删除/修改文件或危险的东西对于个人电脑?
最佳答案
有一个blog post by Cedric Champeau关于自定义 Groovy 编译过程,它的第二部分展示了如何使用 SecureASTCustomizer
和 CompilerConfiguration
来限制脚本可以执行的操作(然后有定义您自己的 AST 检查的示例)对于System.exit
等...
关于security - 如何禁止用户在 Groovy 脚本中做坏事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9681413/