java - 如何让小程序读取客户端上的任意文件? (创建 uploader )

标签 java security permissions applet

我正在编写一个Java文件上传小程序,但我根本无法解决以下问题。 (上传者非常专业,因此我们不能只使用库存解决方案)。我有一个自签名的小程序,我正在尝试在本地测试它,但我无法让它读取本地文件。我有 Permissions:all-permissions 在 list 中声明。

如果我添加

<param name="permissions" value="all-permissions" />

对于小程序标签,它会抛出

com.sun.deploy.security.BlockedException: User has denied the privileges to the code

如果我避免这个,它会抛出

java.security.AccessControlException: access denied ("java.io.FilePermission" PATH_TO_FILE" "read")

在第一种情况下会抛出 BlockedException,即使当 Java 插件询问我有关安全问题时,我总是说“不要阻止”,以便此代码运行。

有什么想法可以测试这个吗?或者您能给我指出一个我可以检查的开源 Java 上传程序小程序实现吗?当然,该软件的部署版本将使用受信任的证书进行签名,但我需要一种方法来测试它......

谢谢!

更新

以下是需要做的事情:

给定我们开发的一个 Web 应用程序,该应用程序需要本地文件系统中的大量小文件。因此,我们需要迭代目录结构并检查文件,以便找到 Web 应用程序所需的文件。手工操作非常麻烦,因此我们需要自动化。

我想到了另外两种方法:

  1. JNLP-applet,但是,其 API 只能显示单个或多个文件的 FileChooser,而不能显示目录的 FileChooser
  2. 一个普通的旧式 Java 客户端应用程序,它将找到所需的文件并通过 API 将它们上传到服务器。然后可以通过 Java Web Start 启动该客户端。
  3. ..您还有什么想法吗?

最佳答案

您尝试做的事情通常会引起人们的不满,因为这正是安装 Java 后系统受到损害的方式。您想要执行的操作是特权操作,您需要在特权模式下运行代码,并且很可能创建一个策略文件以允许其在客户端计算机上运行。 http://www.coderanch.com/how-to/java/HowCanAnAppletReadFilesOnTheLocalFileSystem 有一个简短的教程.

现在,拜托,这实际上是一个非常糟糕的主意。难道您就没有办法编写一个 JavaScript 页面来通过某些 API 调用来执行此上传吗?这样,您就不会绕过浏览器安全性来执行上传。

Java Applet 方法是一种过时、危险且令人讨厌的解决方案,无论进行多少签名、策略文件或调整都无法使其成为安全的替代方案。我是 Java 的 super 粉丝,但如果说有一件事让我做噩梦的话,那就是 Java 浏览器插件 - 从来没有充分的理由使用它,尤其是当你考虑到它是多么的不安全时。当然,别让我开始使用 Flash...

您使用通过 Web Start 加载的普通 Java 客户端的想法似乎是最好的解决方案。这样,一旦安装,您的应用程序就可以完全访问底层文件系统。当然,这也引发了关于这是否真的是使用 Java 的情况的争论,但这完全是另一回事。

关于java - 如何让小程序读取客户端上的任意文件? (创建 uploader ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21124016/

相关文章:

java - 当常数未知时在 O(n) 和 O(n^2) 之间选择正确的算法

java - 限制 Web 服务访问内部 IP 地址

python - Django 组和权限

java - 在eclipse juno中安装maven插件

java - 使用 java 库恢复某一特定修订版中的所有更改

javascript - 检查 Cookie 是否已设置安全标志并仅使用 JavaScript 进行更新

php - 如何允许 SELECT 查询并阻止其他查询?

angular - 您将如何使用 Angular 2 管理用户角色和权限

permissions - VBScript 可以创建文本文件但不能删除文件(权限被拒绝)?

java - 如何通过Intent传输图像?