如何在接受和执行上传的不可信代码时保护我的服务器免受恶意活动?
用户应该能够实现我的接口并使用给定的数据进行一些计算,并返回数据。不需要进行任何I/O操作,当然也不需要进行线程/进程操作或其他骗局。
通过使用java.policy文件,可以拒绝所有访问(通过不授予任何权限)。
使用这个策略文件,未被授权的操作会引发安全异常。
用户应该能够实现我的接口并使用给定的数据进行一些计算,并返回数据。不需要进行任何I/O操作,当然也不需要进行线程/进程操作或其他骗局。
通过使用java.policy文件,可以拒绝所有访问(通过不授予任何权限)。
$ cat test.policy
grant {
};
使用这个策略文件,未被授权的操作会引发安全异常。
$ cat Print.java
public class Print {
public static void main(String a[]) throws Exception {
System.out.println(System.getProperty("os.name"));
}
}
$ javac Print.java
$ java -Djava.security.manager -Djava.security.policy==test.policy Print
Exception in thread "main" java.security.AccessControlException:
access denied (java.util.PropertyPermission os.name read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
at java.lang.System.getProperty(System.java:650)
at Print.main(Print.java:3)
这是否万无一失?我需要采取更多措施来保护我的服务器环境免受不可信来源的攻击吗?