小程序的Java 7安全限制

时间:2013-08-09 08:41:32

标签: java security applet java-7

我已经实现了一个小程序,到目前为止一直没有使用Java 6。最近,当我切换到Java 7时,applet停止工作,在javascript控制台中显示以下异常:

Uncaught Error: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.home" "read")

此行为始终可以重现,只需使用Linux命令update-java-alternatives从一个Java版本切换到另一个Java版本。

applet是自签名的,其​​所有公共方法都会调用AccessController.doPrivileged(),例如:

public File chooseFile() {
    return AccessController.doPrivileged( new PrivilegedAction<File>() {
        public File run() {
            JFileChooser chooser = new JFileChooser();
            chooser.setMultiSelectionEnabled(false);                
            return chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION ? 
                    chooser.getSelectedFile() : null;
        }
    } );
}

我使用java.policy本地文件解决了这个问题,但是不需要特殊的安装程序。

有谁知道哪些是Java 7新的安全限制和/或如何绕过它们?

1 个答案:

答案 0 :(得分:1)

有些信息可以在Do java applets have to be signed with trusted cert authority with new v7 update 21?http://www.oracle.com/technetwork/java/javase/7u21-relnotes-1932873.html

中找到

2013年10月的下一次计划安全更新将有更多限制。

一个要求是从自签名小程序切换到来自受信任机构的证书。