很好的问题。具有讽刺意味的是,此功能已在较早的Microsoft JVM(10年前)中公开。
在Internet Explorer中控制Java
https://blogs.msdn.com/b/ieinternals/archive/2011/05/15/controlling-java-in-internet-explorer.aspx
最近,人们对如何在Internet Explorer中控制Java的使用产生了兴趣。Java是可扩展性的一种独特形式,因为它可以通过两种方式调用:
这两种调用方法受不同的安全控件的控制,我将在今天的帖子中对其进行介绍。
控制Applet标签
当Internet Explorer遇到APPLET标记时,它将检查URLACTION_JAVA_PERMISSIONS值以确定是否应加载APPLET。如果值为URL_POLICY_JAVA_PROHIBIT,则阻止APPLET标记加载JVM。在Internet Explorer的早期版本中,当Microsoft JVM可用时,此URLAction在“工具”>“ Internet选项”>“安全性”>“自定义...”对话框中公开,但是此后已被删除。
您可以使用组策略编辑器来控制节点\ Administrative Templates \ Windows组件\ Internet Explorer \ Internet控制面板\安全页\ ZoneID下的URLAction:
或者,您可以进行一些小的注册表调整,以将JVM选项条目添加回Internet控制面板:
注册表脚本利用了Internet控制面板UI可通过注册表扩展的事实。它只是创建一个新项目来调整URLACTION_JAVA_PERMISSIONS URLAction的值。
如果将Internet区域设置从“高安全性”调整为“禁用”(URL_POLICY_JAVA_PROHIBIT),则任何尝试使用APPLET标记的站点都将发现该小程序未加载,并显示一条通知:
控制对象标签
不幸的是,当站点使用OBJECT标记加载Java时,将执行完全不同的代码路径。在OBJECT标记的情况下,未查询JAVA_PERMISSIONS URLAction,因为就Internet Explorer而言,这可能是任何类型的OBJECT。而是参考了传统的ActiveX控制功能(例如ActiveX筛选,Per-Site ActiveX,管理加载项等)。您可以使用IE的“工具”>“管理加载项”功能来检查或调整Java插件对象的状态:
注意:有人告诉我,不应禁用Java Plug-In SSV Helper Browser Helper对象,因为它可以确保网站不会尝试加载您可能已安装的JVM的较旧(不安全)版本。但是,您会注意到,为启动此BHO而在选项卡启动时付出了性能损失–这是我不在PC上安装Java的众多原因之一。
如果选择Java插件,则可以单击“ 禁用”按钮以防止OBJECT标记加载Java。或者,如果单击“ 更多信息”链接,则可以从Java插件可能在其上运行的站点列表中清除*:
如果随后访问试图将Java作为OBJECT标记调用的站点,您将看到一个通知栏,提示您允许在当前站点上运行Java。
因此,如果要允许Java仅在Intranet和“受信任的站点”区域中运行,请执行以下操作:
- 将Internet区域的URLAction调整为“禁用”
- 从ActiveX控件的“每站点”列表中删除*
步骤#1将确保只有Intranet区域和Trusted Zone站点可以为APPLET标记加载Java。步骤#2将确保Java插件不会在Internet Zone站点上作为对象加载;将会显示一条通知。由于Intranet和受信任的站点会忽略“ Per-Site ActiveX”列表,因此在这些站点上不会看到任何其他警告。