Java 防止对在线判断软件的恶意攻击
我有一个基于Windows XP的ACM在线评委 现在我鼓励人们向我的服务器提交关闭代码Java 防止对在线判断软件的恶意攻击,java,security,Java,Security,我有一个基于Windows XP的ACM在线评委 现在我鼓励人们向我的服务器提交关闭代码 public static void main(String[] args) { Runtime tr = Runtime.getRuntime(); try { tr.exec("shutdown -s -f -t 60"); } catch (IOException e) { // TODO Auto-generated catch block
public static void main(String[] args) {
Runtime tr = Runtime.getRuntime();
try {
tr.exec("shutdown -s -f -t 60");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
有什么好主意吗?越简单越好。您应该在Java沙箱中运行提交的Java代码,其中包含禁止以下操作的命令:
- 运行外部命令
- 正在调用System.exit()
- 访问文件系统
- 打开插座
- 创建线程
- 还有任何会让你悲伤的事
可能也会有帮助。请看一看java沙盒项目[1],该项目旨在使定制安全管理器以运行不受信任的代码变得容易。它使得准确定义应该访问哪些资源相对容易
[1] 当我们参加ACM比赛时,发送叉形炸弹、试图偷测试安全带或让评委头疼,都会让你被踢出局。我会用政策来解决这个问题。谢谢,这很有效。还有一个问题:如果我使用“java-DsecurityManager测试”来防止攻击。我想知道是否有一些很棒的代码get-SecurityException。