如何限制Java插件仅在Internet Explorer中的某些站点上运行?


10

我想更好地保护集中管理的计算机,并且自动部署Java运行时非常困难,但这是另一个问题。

我发现Java的安全性是灾难性的,即使它已被完全修补:看起来,如果用户对无害问题“您是否信任此证书”说“是”,那么Java可以做任何它想做的事情。Java Webstart似乎也是恶意软件作者的通用入口点。

通常,我不关心我的用户玩浏览器游戏等。Javaapplet似乎已经灭绝了。

但是仅剩一页(Ingramm Micro购物系统)依赖于Java。

有谁知道通过组策略配置IE或Java的简单方法,以仅允许在某些预配置站点上使用Java插件?

谢谢!


Oracle将JRE当作MSI来使用,这使得部署/更新非常简单。
jscott 2012年

Answers:


12

很好的问题。具有讽刺意味的是,此功能已在较早的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元素
  • OBJECT元素与JVM的CLSID一起使用

这两种调用方法受不同的安全控件的控制,我将在今天的帖子中对其进行介绍。

控制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和“受信任的站点”区域中运行,请执行以下操作:

  1. 将Internet区域的URLAction调整为“禁用”
  2. 从ActiveX控件的“每站点”列表中删除*

步骤#1将确保只有Intranet区域和Trusted Zone站点可以为APPLET标记加载Java。步骤#2将确保Java插件不会在Internet Zone站点上作为对象加载;将会显示一条通知。由于Intranet和受信任的站点会忽略“ Per-Site ActiveX”列表,因此在这些站点上不会看到任何其他警告。


优秀答案,格雷格。可以通过组策略执行步骤1,步骤2也是如此吗?

我在gpo设置电子表格中进行了快速检查,但没有看到它。修改设置时,您可能可以对注册表进行前后比较,并为其创建自定义adm模板。
Greg Askew

我会注意到一些有关通过GPO管理Java的文章(但我尚未完全了解):darkoperator.com/blog/2013/1/14/…及其前身darkoperator.com/blog /
2013/1/12
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.