Java 7u45 安全属性 ClassNotFoundException list

标签 java security jar applet

目前我正在尝试消除 Java 小程序中 7u45 的安全问题,但是它导致了小程序加载的巨大问题。由于某种原因,所有类文件都没有正确加载。

向您通报最新情况。我有一个工作的 java 小程序,它在 jar 文件的 list 中定义类文件。他们是多个具有相同问题的 jar 。但问题对所有人来说都是一样的,所以如果我专注于这一个 jar ,我可以更简单地解释这个问题。

注意:所有 JARS 都已签名

所以 jar 的原始版本在 list 中包含以下内容,使应用程序可以完美运行。

Manifest-Version: 1.0

Name: app.class
SHA-256-Digest: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

因此,为了解决 7u45 中的安全警告和弹出窗口问题,我包含了额外的参数(用于测试)以查看警告是否消失以及警告是否消失但应用程序无法加载。以下是带有安全实现的当前 list

Manifest-Version: 1.0

Name: app.class
SHA-256-Digest: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Codebase: *
Permissions: all-permissions
Application-Library-Allowable-Codebase: *
Caller-Allowable-Codebase: *
Application-Name: xxxxxx

我只是在 winrar 中打开了 jar 并用记事本编辑了 list 并添加了额外的设置。

加载了应用程序,按照我的预期,小程序没有显示安全警告,但随后出现了 app.class 的 classNotFoundException 的巨大错误。

jar 文件包含以下文件:

    .classpath
    .project
    META-INF/MANIFEST.MF
    META-INF/LIC.RSA (licence)
    META-INF/LIC.SF (licence)
    app.class

我无法理解的是,在将安全属性添加到 list 之前应用程序运行良好,没有它也可以毫无问题地找到 app.class 文件,但是一旦我启动它并进行新的安全更改应用程序无法再找到 app.class 文件。

我真的被这个问题困住了,有人能看出设置有问题吗????

提前致谢!

编辑说明 - 我有一个部署规则集,指定应用程序的证书哈希以及此客户端计算机上的证书。

编辑说明 - 要调查的问题

它可能是 * 通配符吗?

会不会是安全更新无法在manifest中指定附加内容?

更新说明:- list 签名 - 响应“Tom Hawtin - tackline”(放弃 Jar 文件)

在使用安全更改更新 list 文件后尝试退出 jar 文件后,我注意到在尝试使用 jarsigner 工具时收到“Java.IOException - list 格式无效”错误。正在研究这个。这是由于 list 无法正确读取 list 。现在更新我所做的更改。遵循先前研究的原则和教程示例。我将 list 编辑为如下所示。

Manifest-Version: 1.0

Name: app.class
SHA-256-Digest: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Codebase: * 

Permissions: all-permissions

Application-Library-Allowable-Codebase: *

Caller-Allowable-Codebase: *

Application-Name: xxxxxx

变化

  • 属性和值之间的空格,因为这是必需的。
  • list 文件末尾的空格。

但是,我仍然收到 IO 异常。我已将安全代码缩减为“应用程序名称:xxxx”,但它仍然无法正常工作。我想知道在 winrar 中打开 jar 文件、打开里面的 list 文件、编辑代码然后保存和更新存档是否会导致问题?这应该在编译之前完成吗?还是允许打开 jar 并编辑其内容?

更新

插入安全更改会导致 list 格式无效

最佳答案

list 需要签名。 (不幸的是,它在早期版本的 Java 中未完全签名。)因此,如果您更改 list 的内容,则需要退出。您还应该使用最新的 JDK 对其进行签名,因为已决定检查更多文件的签名。

关于Java 7u45 安全属性 ClassNotFoundException list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20422831/

相关文章:

java - 一个 JDBC 连接中可以有两个并发事务吗?

java - 如何添加存储到一列的默认值

java - JAXP00010004 和 java.lang.OutOfMemoryError : GC overhead limit exceeded

java - JRebel 曾经在生产环境中使用过吗?它可以在 JVM 上重新加载什么?

javascript - 保护 Web 应用程序中的第三方库的安全

java - 在pom.xml中包含maven项目中的所有资源

Java 命令太长而无法运行

python - 这段 Python 代码容易受到 SQL 注入(inject)的攻击吗? (SQLite3)

java - 周围有哪些免费的用于管理 Java keystore 和安全证书的工具

windows - 无法在 Windows 上使用 jar 命令