【问题标题】:Applet Security小程序安全
【发布时间】:2011-04-30 21:43:01
【问题描述】:

我在访问用户文件目录的 html 页面中嵌入了一个小程序。它的签名。当我在 init 函数中编写代码时,它工作得很好,但是当我在方法中编写这段代码并使用 Javascript 调用它时,它会向我发送安全异常。你知道我该如何解决这个问题吗?

public class App extends javax.swing.JApplet {

@Override
public void init() {


 }

public void callMethod(){
    File file = new File("D:/test.txt");
    if(!file.exists()){
        try {
            file.createNewFile();
        } catch (IOException ex) {
            Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 }

}


Javascript:  
    window.document.applets[0].callMethod();

【问题讨论】:

  • 我包含有问题的代码。
  • @user javascript 在哪里?
  • @Bala R Javascript 代码包含在问题中

标签: java applet


【解决方案1】:

看看这个非常相似的问题的答案是否可以帮助你:signed applet gives AccessControlException: access denied, when calling from javascript

【讨论】:

  • @WhiteFand34 问题与您提供的链接相同,但我无法理解解决方案。他在 onClick 事件中重新加载小程序,我不想这样做,因为加载所有需要的 jar 等需要很长时间。我想要实现的是,在页面加载时加载小程序并在需要时调用方法。如果我要重新加载所有小程序,那么它会卡住浏览器。
【解决方案2】:

为了获得信任,堆栈上的每一帧都必须考虑在内。一旦 JavaScript 加入其中,情况就不再如此了。

要修复它,请将受信任的代码包装在 AccessController.doPrivileged() 方法中。有关示例,请参阅 JavaDocs。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多