随着applet安全性的最新变化以及由此产生的问题(主要是使用LiveConnect),我想知道是否有办法从applet代码中检查当前的安全基线,并将其与当前的JRE版本进行比较。这样就可以采取一些行动,比如警告用户,而不是只是默默地失败。
编辑:为了澄清,从Java 7开始,Oracle引入了“安全基线”,这是被认为是“安全”的最低JRE版本。例如。目前它是(我认为)1.7.0_45。因此,如果用户安装了较低的JRE,applet将启动,但某些功能将无法运行。在我的例子中,JavaScript到applet调用被阻止。 applet插件动态检查当前基线是什么,所以我想知道applet是否有办法确定这个基线。
答案 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版本需要三个步骤: