当前位置:  开发笔记 > 编程语言 > 正文

为什么Java告诉我我的applet包含有符号和无符号代码?

如何解决《为什么Java告诉我我的applet包含有符号和无符号代码?》经验,为你挑选了2个好方法。

我的签名Java applet在Java更新19之前一直运行正常.现在Java Update 19上的一些但不是所有用户都报告了一条java安全消息,指出我们的applet包含有符号和无符号代码.

创建applet的过程如下:

    在Netbeans IDE中清理并构建applet项目.

    在WinRAR中打开Applet jar文件,并将所需的mysql JDBC驱动程序.class文件添加到jar文件中.

    签署applet jar文件.

有人可以告诉我如何确定签署的代码以及我们的applet中没有签署的代码?有没有更好的方法将mysql JDBC驱动程序jar文件包含在我们的applet中,而不是将jar文件内容复制到我们的applet jar文件中?

谢谢



1> Sarel Botha..:

编辑:由于Java 7 Update 45中的错误,您不应将Trusted-Library添加到清单文件中.只需添加新属性Caller-Allowable-Codebase.有关更多信息,请参阅此问题:Java applet清单 - 允许所有Caller-Allowable-Codebase

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

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

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

Trusted-Library: true

在这之前你应该非常小心.如果您可以通过javascript调用已签名的applet,则恶意用户可能会在用户的计算机上执行有害操作.

保护applet的一种快捷方法是阻止它在其他网站上运行.通过将代码放在init()查看的方法中getCodeBase().getHost()并在与您的站点不匹配时抛出异常来执行此操作.

Java 7 Update 25引入了另一种限制可以运行applet的站点的方法.您可以在清单文件中设置Codebase属性,如下所示:

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

基本上,您还需要将以下内容添加到清单文件中以避免提示:

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

如果您正在销售包含applet的产品,并且您不知道可以部署哪些域,则可以在此处填充*.



2> Devon_C_Mill..:

有些事要尝试:

转到java插件控制面板($ JAVA_HOME/bin/ControlPanel).

转到Advanced选项卡.

扩大 Debug

检查Enable tracing,Enable loggingShow applet lifecycle exceptions

扩大 Java console

校验 Show console

单击OK(或Close,取决于您的操作系统)

当您的applet加载时,Java控制台将打开.单击它并立即按"5".它将记录正在获取的jar和类以运行您的applet.在这里的某处应该有一条消息,表明哪些罐子或类被认为是"无符号的".如果你第一次错过它,只需重新加载窗口再试一次.


从7u21开始,如果applet与Javascript交互,也会触发混合代码警告.(http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/mixed_code.html)在这种情况下,在Java控制台不会显示警告即使5级启用跟踪.
有些地方应该有一条消息,表明哪些罐子或类别被认为是"无符号"的消息是什么?安全性:Istrusted:null false ??
推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有