为什么Java告诉我我的小程序包含两个签署并无符号代码?
-
25-09-2019 - |
题
我签名的Java小程序已经运行良好,直到Java更新19.现在有些但不是我们所有的用户在更新19个报告java安全信息,说明我们的小程序包含两个签署并无符号代码。
该过程对于建立我们的小程序如下:
- 清洁和建立程序项目在IDE.
- 开放式程序的罐子文件压缩和添加所需要的mysql JDBC驱动程序。类文件的罐子文件。
- 注册程序罐子文件。
谁能告诉我怎么确定是什么代码签署和什么样的代码不是签名在我们的小程序?是否有更好的办法包括mysql JDBC驱动器的罐子文件,在我们的小程序用于复制的罐子文件的内容纳入我们的小程序罐的文件?
感谢
解决方案
有些事情要尝试:
- 去java插件的控制面板($JAVA_HOME/bin/控制面板).
- 去
Advanced
标签。 - 扩大
Debug
- 检查
Enable tracing
,Enable logging
, ,Show applet lifecycle exceptions
- 扩大
Java console
- 检查
Show console
- 点击
OK
(或Close
, 根据你的操作系统)
当你的小程序负荷Java控制台打开。击,并立即按'5'.它将记录的罐子和课程,获取运行你的小程序。某个地方在此应该有一个消息,表明什么样的瓶子或类考虑"unsigned".如果你错过了它的第一次,刚刚重新装窗口再试一次。
其他提示
编辑:由于在一个错误Java7 45更新你应该不会添加信任的图书馆向清单的文件。只是添加新的属性呼叫允许的-代码。看到这个问题的更多信息: Java程序清单允许所有呼叫容许的代码
Java7更新21获释月16 2013年,并引起我们的小程序的启动显示出这个警告的对话。
每释放注:为JAVA7u21,JavaScript代码,电话代码内的一个特权小应用程序是作为处理混合代码和预警的对话提出,如果签署的罐子文件没有标记与信任的图书馆属性。
要解决这个编辑清单。mf文件,并添加一条线这样的:
Trusted-Library: true
你应该非常小心前,这样做虽然。如果你签名的小程序可以被称为自javascript然后恶意用户可能潜在地有害做的事情上你的用户的计算机。
一个快速的方式来保护你的小程序,以防止它正在运行上的其他网站。这样做通过把代码 init()
方法看起来在 getCodeBase().getHost()
并引发一个例外,如果这不符你的网站。
Java7更新25介绍了另一种方式限制的网站在那里你的小程序可以运行。你可以设定代码的属性,在你的清单文件中是这样的:
Codebase: test.example.com www.example.com
Java7更新45(相关型号月16 2013年)引入了更多变化的二进制系统(javascript到小程序桥),可能会导致另一种提示。这篇文章谈7u45的变化: https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45
基本上你也会想要添加以下你的文件清单,以避免的提示:
Caller-Allowable-Codebase: test.example.com www.example.com
如果你是销售产品,包括小程序和你不知道什么域它可以部署在你可以填*在这里。
混合可信和不信任的代码一起是一个漏洞已经被固定在6u19(目前的中央处理器/安保部门改革释放当时的文字)。 请参阅的文档。 阻止混合或使用一个调试器,应该显示问题所在。