Java Unsigned Applet - 忽略传递VM参数“java.security.policy”?

时间:2013-09-07 02:39:49

标签: java security applet unsigned policy

在有人问我为什么我这样做,或建议我签署applet,或者在J2EE客户端权限下通过JWS部署它时,这纯粹是出于学术原因并满足我自己的好奇心

我正在尝试提供一个VM参数(java.security.policy)来指向用于管理相关applet的策略文件,如下所示,但它似乎被忽略,一直引发安全异常。我在Oracle的文档中找不到任何内容,表明这是预期的。任何人都可以为我阐明这一点吗?感谢

(结果)

java.security.AccessControlException: access denied ("java.io.FilePermission" "frustrated.txt" "write")

(HTML)

<html>
    <body>
        <applet name ="Frustrated" 
                code="com.test.Main.class" 
                archive="Frustrated.jar" 
                width="100" 
                height="100"
        >
            <PARAM name="separate_jvm" value="true">
            <PARAM name="java_arguments" value="-Djava.security.policy=C:\Frustrated.policy">
        </applet>
    </body>
</html>

(Java)的

package com.test;

import java.applet.Applet;
import java.io.FileOutputStream;
import java.io.IOException;

@SuppressWarnings("serial")
public class Main extends Applet
{
    @Override
    public final void init()
    {
        try
        {
            new FileOutputStream("frustrated.txt");
        }
        catch (IOException e) { }
    }
}

(策略)

grant
{
    permission java.security.AllPermission;
};

1 个答案:

答案 0 :(得分:1)

<PARAM name="java_arguments" value="-Djava.security.policy=C:\Frustrated.policy">

如果可以通过applet参数建立自定义策略,那将是一个(严重的)安全漏洞。

暂且不说。鉴于这是“纯粹的学术原因”我将添加我的一个共同建议。小应用程序和学术界。

  

为什么要编写applet?如果是由于规格。请教老师,请参阅Why CS teachers should stop teaching Java applets

相关问题