在最新的Java更新(7u11)之后,每当我的applet加载到firefox中的页面上时,您必须允许应用程序运行时发出很大的安全警告,而实际上applet无法访问任何类型的个人信息.
在IE中,它仍然会向该警告发送一次垃圾邮件,但是当您单击“始终允许”时,它将不再这样做.在Firefox中,即使您单击“始终允许”,每次离开并再次出现时,它都会再次提示.我担心会吓跑潜在用户.
小程序创建与驻留在与Web服务器相同的服务器/ IP上的守护程序的网络连接. (目前为端口4444).以前,这不会构成安全违规,但是现在确实如此,必须加以证明.
小程序将不断变化的信息(价格,时间等)发送给客户端,并且数据必须与服务器保持实时连接才能正确显示.客户端发送有限数量的数据(基本上是一种自行设计的协议,用于确定您要查看的信息).该小程序无法访问系统上的个人文件或其他信息.此小程序仅访问自己的资源(.jar文件中包含的内容),而用户硬盘上没有文件.
另外,更新Java之后,使用小程序访问我的页面时,显示错误“您必须安装Java”.您选择下载并安装,它说已经安装了Java,是否要重新安装?如果您拒绝,则仍然显示错误.如果您说重新安装,则现在将加载applet,但包含所有安全性内容.
我知道必须有一个解决方法. Yahoo游戏和pogo游戏使用Java环境以及一些客户端-服务器流量,但是它们并未显示出很多安全警告.唯一的区别是我的Applet使用JavaFX,而yahoo和pogo使用Swing或AWT.
解决方法:
从Java 7u11开始,Java applet的默认安全级别已从“中”更改为“高”-这可能会导致在针对Java 7u11运行应用程序时看到的新安全警告.从Java 7u11 release notes开始:
Synopsis: Default Security Level Setting Changed to High
The default
security level for Java applets and web start applications has been
increased from “Medium” to “High”. This affects the conditions under
which unsigned (sandboxed) Java web applications can run. Previously,
as long as you had the latest secure Java release installed applets
and web start applications would continue to run as always. With the
“High” setting the user is always warned before any unsigned
application is run to prevent silent exploitation.
IMO,这意味着Oracle承认Java的攻击面太大,无法充分阻止通过下载进行攻击,例如,用户仅进入运行Java的网页,而该网页利用了未修补的漏洞Java危害用户的系统.因此,Oracle的响应是提高浏览器中Java应用程序的安全性,这样,如果没有用户首先同意继续执行,就永远无法运行它们.许多人会说,这通常对Internet来说是一件好事,但是如果您以前依靠未经签名的非恶意应用程序将其交付给用户却没有安全警告弹出窗口,那将是不希望的.
对于Yahoo或Pogo游戏,大概是游戏已经签名,在这种情况下,第一次运行发布者的游戏时将显示警告消息,但用户可以选择始终信任发布者,在这种情况下,用户当用户从同一发布者访问小程序时,将永远不会显示警告.如果愿意,您可以为您的应用程序执行相同的操作.
您还可以要求用户将其安全性偏好设置从默认值降低(例如,从“高”降低到“中”),然后,当您运行未签名的应用程序时,将不会出现警告消息-但这是不可取的,因为Oracle将默认的安全性偏好设置从中到高是有充分理由的.
JavaFX与Swing或AWT applet的警告行为应该没有区别-如果存在警告,那将是一个严重的错误,需要报告给Oracle.
独立于Java安全设置,各个浏览器供应商都可以选择阻止Java或Java版本并向用户显示警告.这些阻止消息在各种浏览器中的外观的某些图像位于Disabled Java warning appearance & affect on Java Web Start apps(帖子名称中提到了Web Start应用程序,但是帖子中的警告图像与applet相关-不管这些applet是基于Swing还是基于JavaFX的).
这是Java将为未签名的应用程序生成的警告消息的示例.运行Java 7u11时,通过在Oracle’s java.com site上单击“验证Java”按钮,在Mac OS X 10.8上生成了警告消息.