有没有办法在applet中获取安全基线?

时间:2014-02-04 11:36:20

标签: java security applet

随着applet安全性的最新变化以及由此产生的问题(主要是使用LiveConnect),我想知道是否有办法从applet代码中检查当前的安全基线,并将其与当前的JRE版本进行比较。这样就可以采取一些行动,比如警告用户,而不是只是默默地失败。

编辑:为了澄清,从Java 7开始,Oracle引入了“安全基线”,这是被认为是“安全”的最低JRE版本。例如。目前它是(我认为)1.7.0_45。因此,如果用户安装了较低的JRE,applet将启动,但某些功能将无法运行。在我的例子中,JavaScript到applet调用被阻止。 applet插件动态检查当前基线是什么,所以我想知道applet是否有办法确定这个基线。

1 个答案:

答案 0 :(得分:1)

您可能会参考以下文章:Security Baseline impacts。 据我所知,目前没有机制来检测当前的基线 - 但是可能有一个解决方案:

我前段时间为安装程序编写了一个自动java版本检查机制。您需要(a)并了解java基线版本控制机制(b)。如果您已经启动了applet,那么在执行任何liveconnect之前,请检查java版本和当前基线,并向用户显示一些错误。

关于(b): 如果我理解正确,基线确定如下:

7u25 was the previous secure baseline. 7u40 "only" contained bug fixes and did
not contain security patches -> no update necessary. When 7u45 was released, 
this critical patch update contained security patches and raised the secure 
baseline -> Users had to update

<强>更新 我读到了new version number scheme。基本上,如果它只是一个有限的更新(添加新功能和非安全修复程序),则不会引发基线。对于CPU(关键补丁更新),将引发基线,版本号将包含奇数。 - &GT;所以你可以检查补丁版本是否奇怪...... 更新结束

关于(a) 检索当前java版本需要三个步骤:

  1. 下载文件:http://javadl-esd.sun.com/update/1.7.0/map-m-1.7.0.xml
  2. 解析文件并提取最后一个https网址:https://javadl-esd-secure.oracle.com/update/1.7.0/au-descriptor-1.7.0_51-b13.xml
  3. 从理论上讲,您可以从网址中提取版本,或者在网址后面下载xml文件
  4. 在该第二个文件中,您将找到版本标签:1.7.0_51-b13