【发布时间】:2013-07-21 18:03:57
【问题描述】:
作为我正在开发的 Java 驱动游戏的一部分,我计划嵌入 Groovy(或可能其他一些)脚本语言,以支持较低级别的 mod 支持,并为对话和任务文件等内容在游戏中产生影响世界。但是我的目的和潜在模组作者的目的可能会有所不同,如果可能的话,我希望避免删除不危险的语言功能。
虽然我的具体需求当然会与公共规范有所不同,但我很好奇是否有任何公认的 java 包和类白名单(无论多么短),可以访问而不会对用户造成重大风险。
【问题讨论】:
-
这段代码是在(例如您的)服务器上运行,还是在客户端机器上运行?
-
不完全一样,但如果你还没有发现这个问题,它也可能对你有用:stackoverflow.com/questions/6210045/…
-
@AndrewThompson 代码将在客户端机器上运行,但令人担忧的是我最终希望添加多人游戏支持和托管改装服务器的能力。在这种情况下,我正在研究允许此类(第 3 方)改装服务器直接向连接客户端提供所需的改装文件(可能包含脚本)的可行性。这当然需要成为一个“选择加入”的过程,但这同样是一个安全问题。见here
-
"..以及托管改装服务器的能力。" 然后您甚至需要考虑像
while(true);这样简单的事情 - 这会消耗大量 CPU 周期.. -
@AndrewThompson 如果我托管的服务器正在执行用户提交的代码,这听起来更像是一个需要担心的问题。正在发生的事情是运行我的游戏的客户端将执行由我无法控制的服务器提供的代码。但是,我不认为只会导致减速的模组是安全风险,因为用户可以简单地结束程序,在下次启动时删除模组,然后继续前进。
标签: java security scripting whitelist