5

可以JApplet使用 aJFileChooser以便用户可以选择其硬盘驱动器上的文件吗?或者这会违反 Java 小程序的安全性吗?(我假设正在使用默认的安全设置。我不想让我的用户授予我额外的权限。)

4

4 回答 4

3

该线程表明您需要在JFileChooser允许 a 之前对您的小程序进行数字签名。

于 2008-10-24T21:25:44.250 回答
2

如前所述,您需要对您的小程序进行签名,这会在向用户显示小程序时导致“模糊的安全警告”。当用户同意运行这个小程序时,这个小程序就被赋予了完全的访问权限和功能,就像一个普通的应用程序一样,具有明显的安全隐患。对于我正在开发的 Web 应用程序,我也处于同样的两难境地,但还不确定它是否会被部署。

如果您正在处理较小的文件,您也可以使用网络浏览器中的内置文件浏览器并从您的服务器反弹文件内容。

此外,您可以针对已签名的小程序采取的一些安全措施包括:

  • 验证小程序代码的来源。

    URL appletUrl = MyApplet.class.getProtectionDomain().getCodeSource().getLocation();
    if(appletUrl.toString().equalsIgnoreCase(safeAppletUrl) == false)
       return false;
    
  • 验证运行小程序的基本 URL。

    URL documentUrl = this.getDocumentBase(); 
    if(documentUrl.toString().equalsIgnoreCase(safeDocumentUrl) == false)
       return false;
    
于 2008-10-26T10:35:29.573 回答
1

在那种情况下(使用默认设置),你是对的,默认安全管理器不允许访问本地文件。

于 2008-10-24T21:21:49.530 回答
1

您可能必须使用 PrivilegedAction 从用户的硬盘读取任何内容。正如@mmyers 所说,您还必须签署您的小程序。

所以你的答案是肯定的,我以前做过,所以我知道可以做到。

于 2008-10-24T21:37:09.563 回答