gpt4 book ai didi

java - 为什么 Java 告诉我我的小程序包含签名和未签名的代码?

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:31 26 4
gpt4 key购买 nike

在 Java 更新 19 之前,我签名的 Java 小程序一直运行良好。现在,我们的一些但不是所有使用 Java 更新 19 的用户报告一条 java 安全消息,指出我们的小程序包含签名和未签名的代码。

创建我们的小程序的过程如下:

  1. 在 Netbeans IDE 中清理并构建小程序项目。
  2. 在 WinRAR 中打开 Applet jar 文件并将所需的 mysql JDBC 驱动程序.class 文件添加到 jar 文件中。
  3. 签署 applet jar 文件。

有人可以告诉我如何确定我们的小程序中哪些代码已签名,哪些代码未签名吗?除了将 jar 文件内容复制到我们的小程序 jar 文件之外,是否有更好的方法将 mysql JDBC 驱动程序 jar 文件包含在我们的小程序中?

谢谢

最佳答案

编辑:由于 Java 7 Update 45 中的错误,您不应将 Trusted-Library 添加到您的 list 文件中。只需添加新属性 Caller-Allowable-Codebase。有关详细信息,请参阅此问题:Java applet manifest - Allow all Caller-Allowable-Codebase

Java 7 Update 21 于 2013 年 4 月 16 日发布,导致我们的小程序开始显示此警告对话框。

根据发行说明:从 JDK 7u21 开始,如果已签名的 JAR 文件未使用 Trusted-Library 属性进行标记,则调用特权小程序中代码的 JavaScript 代码将被视为混合代码并引发警告对话框。

要解决此问题,请编辑您的 manifest.mf 文件并添加如下一行:

Trusted-Library: true

不过,在执行此操作之前您应该非常小心。如果可以从 javascript 调用您签名的小程序,那么恶意用户可能会在您用户的计算机上进行有害操作。

保护小程序安全的一种快速方法是防止它在其他网站上运行。为此,请将代码放入 init() 方法中,该方法会查看 getCodeBase().getHost() 并在与您的站点不匹配时抛出异常。

Java 7 Update 25 引入了另一种方法来限制您的小程序可以运行的站点。您可以像这样在 list 文件中设置代码库属性:

Codebase: test.example.com www.example.com

Java 7 Update 45(2013 年 10 月 16 日发布)对 LiveConnect 系统(javascript-to-applet 桥)进行了更多更改,可能会导致出现另一个提示。这篇文章讲的是7u45的变化:https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45

基本上您还需要将以下内容添加到您的 list 文件中以避免出现提示:

Caller-Allowable-Codebase: test.example.com www.example.com

如果您销售的产品包含一个小程序,并且您不知道它可以部署在哪些域上,您可以在此处填写 *。

关于java - 为什么 Java 告诉我我的小程序包含签名和未签名的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2608383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com