3

在最新的 Java 更新 (7u11) 之后,每当我的小程序加载到 Firefox 中的页面上时,您必须允许应用程序运行并发出很大的安全警告,而事实上小程序无法访问任何类型的个人信息。

在 IE 中,它仍然会发送此警告一次,但是当您单击“始终允许”时,它不再这样做了。在火狐浏览器中,即使点击“始终允许”,每次离开再回来都会再次提示。我担心吓跑潜在用户。

小程序创建与托管在与网络服务器相同的服务器/IP 上的守护程序的网络连接。(目前为 4444 端口)。以前,这不会构成安全违规,但现在确实并且必须得到批准。

小程序向客户端发送不断变化的信息(价格、时间等),并且数据必须与服务器保持实时连接才能正确呈现。客户端发送有限数量的数据(基本上是一个自行设计的协议,用于确定您要查看哪些信息)小程序不会访问系统上的个人文件或其他信息。这个小程序只访问它自己的资源(包含在 .jar 文件中的东西),不访问用户硬盘上的文件。

另一方面,更新java后,当使用小程序访问我的页面时,显示错误“您必须安装java”。你选择下载并安装,它说java已经安装,你要重新安装吗?如果您说不,仍然会显示错误。如果您说重新安装,小程序现在会加载但包含所有安全内容。

我知道必须有一个解决方法。雅虎游戏和 pogo 游戏使用 Java 环境和一些客户端-服务器流量,但它们不会显示一堆安全警告。唯一的区别是我的 Applet 使用 JavaFX,而 yahoo 和 pogo 使用 Swing 或 AWT。

4

1 回答 1

4

从 Java 7u11 开始,Java 小程序的默认安全级别从中更改为高 - 这可能会导致您在针对 Java 7u11 运行应用程序时看到新的安全警告。从Java 7u11 发行说明

概要:默认安全级别设置更改为高 Java 小程序和 Web 启动应用程序的默认安全级别已从“中”提高到“高”。这会影响未签名(沙盒)Java Web 应用程序可以运行的条件。以前,只要您安装了最新的安全 Java 版本,小程序和 Web 启动应用程序就会像往常一样继续运行。使用“高”设置,在运行任何未签名的应用程序之前总是会警告用户以防止静默利用。

IMO,这相当于 Oracle 承认 Java 的攻击面太大,无法充分防止通过下载攻击进行驱动,例如用户只是访问运行 Java 的网页,而该网页利用了一个未修补的漏洞Java 危害用户的系统。因此,Oracle 的回应是提高浏览器中 Java 应用程序的安全级别,以便在没有用户首先同意继续执行的情况下,它们永远无法运行。许多人会说这对 Internet 来说总体上是一件好事,但如果您之前依赖未签名的非恶意应用程序在没有安全警告弹出窗口的情况下将其交付给用户,则这是不可取的。


对于 Yahoo 或 Pogo 游戏,可能游戏已经签名,在这种情况下,第一次运行来自发行商的游戏时会显示警告消息,但用户可以选择始终信任发行商,在这种情况下,用户随后,当用户访问来自同一发布者的小程序时,将永远不会显示警告。如果您愿意,您可以为您的应用程序做同样的事情。


您还可以要求用户降低他们的默认安全首选项(例如从高到中),然后,当您的未签名应用程序运行时,不会有警告消息 - 但这是不可取的,因为 Oracle 将默认安全首选项从中到高是有充分理由的。


JavaFX 与 Swing 或 AWT 小程序的警告行为应该没有区别——如果有,那将是一个要报告给 Oracle 的严重错误。


独立于 Java 安全设置,个别浏览器供应商可以选择阻止 Java 或 Java 版本并向用户显示警告。这些阻止消息在各种浏览器中的样子的一些图像在禁用 Java 警告外观和影响 Java Web Start 应用程序(帖子名称提到 Web Start 应用程序,但帖子中的警告图像与小程序相关 - 无论这些小程序是基于 Swing 或 JavaFX)。


以下是 Java 将为未签名应用程序生成的警告消息示例。警告消息是在 Mac OS X 10.8 上运行 Java 7u11 时通过单击Oracle 的 java.com 站点上的“验证 Java”按钮生成的。

安全警告

于 2013-01-28T05:51:22.190 回答