首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >doPrivileged和java小程序沙箱

doPrivileged和java小程序沙箱
EN

Stack Overflow用户
提问于 2013-06-14 16:16:06
回答 2查看 612关注 0票数 0

例如,如果我在applet类中使用此代码,请在applet沙箱中运行它

代码语言:javascript
复制
public void init() {
    try {
        class doInit implements PrivilegedExceptionAction {

            public Object run() throws Exception{
                File file = new File("/tmp/1.txt");
                FileOutputStream fos = null;

                fos = new FileOutputStream(file);
                fos.write("hello world2".getBytes());
                fos.close();
                return null;
            }
        }
        ;
        doInit di = new doInit();
        AccessController.doPrivileged(di);

我知道它会失败并抛出安全异常。但是为什么呢?

FileFileOutputStream都在核心java API中,但是我不能使用doPrivileged来获取权限。

EN

回答 2

Stack Overflow用户

发布于 2013-06-14 16:43:38

在小程序的情况下,您作为小程序的开发人员无权授予或撤销权限。它们由执行小程序的计算机上的安全设置和策略确定。小程序的一个要求是由有效且受信任的证书签名。

票数 1
EN

Stack Overflow用户

发布于 2013-06-14 18:22:35

进一步回答@mschenk74:

受信任的小程序可以读取文件,而沙盒小程序则不能(使用或不使用doPrivilieged)。

但是,如果受信任的applet中的方法被JavaScript调用(例如),JVM就不再认为它是受信任的。指出是使用doPrivileged的地方。它有效地告诉JVM‘认为这段代码是可信的,即使被其他东西调用,比如JS’。

不受信任的小程序有一种方法可以将文件写入本地磁盘,但它涉及到使用JNLP API file services

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17104038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档