Java Web Start 是否需要启用 Java 浏览器插件?

Does Java Web Start require that the Java browser plug-in is enabled?

为了保护我们的用户免受恶意小程序的侵害,我想禁用 Java 浏览器插件。

在测试 (JRE 7) 中,我注意到停用插件也会禁用 Java Web Start。我们需要使用一个 Web Start 应用程序,所以我们似乎别无选择,只能启用浏览器插件。

这是否正确,或者是否有一种方法可以在不启用浏览器插件的情况下使用 Web Start?


测试步骤:

其消息转换为

This application could not be downloaded because Java over Internet is deactivated. You can activate Java on this system over the Java Control Panel

我没有在 Java 控制面板中看到激活 "Java over Internet" 的选项。当我启用浏览器插件时,可以启动 Java Web Start 应用程序。

如果我执行 JNLP 文件的本地副本,会出现相同的错误消息

jawas <path to local jnlp file>

jnlp 文件(略微清理):

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="https://example.com/path/to/" href="webstartapp.jnlp">
    <information>
        <title>...</title>
        <vendor>...</vendor>
        <homepage href="..." />
        <description>...</description>
        <description kind="short">...</description>
        <description kind="tooltip">...</description>
        <offline-allowed />
    </information>
    <security>
        <all-permissions />
    </security>
    <resources>
        <j2se version="1.7+" initial-heap-size="128m" max-heap-size="256m" />
        <jar href="Client/lib/Launcher.jar" main="true" />
    </resources>
    <application-desc main-class="com.veda.launcher.Start">
        <argument>...</argument>
        <argument>*</argument>
    </application-desc>
</jnlp>

试试这个 Link 这里讨论 运行 在浏览器外创建 jnlp 文件。您需要 java 到 运行 一个 jnlp 文件,并且由于您在浏览器中禁用了 java 插件,它可能不会 运行 来自浏览器的应用程序。

据我所知,Java 控制面板的安全选项卡上的 "Enable Java content in the browser" 复选框控制着小程序和 Web 启动。实际上,在 Mac 上,等效的复选框称为 "Enable applet plug-in and Web Start applications"。

因此,您不太可能通过 Java 控制面板完成此操作。但是,您可以在控制面板中将全局 Java 设置保持打开状态,并在每个浏览器中单独禁用 Java。

是的,我知道复选框会同时影响插件和 webstart。

我看到两个选项:

  1. 您可以看到,您可以通过拥有证书来增加安全权限以尝试确保恶意软件无法运行。 Select 非常高,如果您需要您的代码 运行 在浏览器中将其添加到例外列表中。

  2. 更改每个浏览器以在浏览器中单独拒绝 java。虽然据我所知这对 IE 不起作用。

禁用浏览器中的 Java 内容

Internet Explorer

在 Internet Explorer (IE) 中完全禁用 Java 的唯一方法是如上所述通过 Java 控制面板禁用 Java。

Chrome

单击 Chrome 菜单,然后单击 select 设置。
在设置 window 的底部,单击显示高级设置 向下滚动到“隐私”部分并单击“内容设置”。
在“内容设置”面板中,向下滚动到“插件”部分。
在插件部分下,单击禁用单个插件。
在插件面板中,滚动到 Java 部分。单击禁用以禁用 Java 插件。
关闭并重新启动浏览器以启用更改。
注意:或者,您可以通过在浏览器地址栏中键入 about:plugins 来访问插件设置。

Firefox

从 Firefox 菜单中,select 工具,然后单击附加组件选项
在附加组件管理器中 window、select 插件
单击 Java (TM) 平台插件 select 它
单击禁用(如果按钮显示启用,则 Java 已被禁用)

野生动物园

选择 Safari 偏好设置
选择安全选项
Select 允许插件,然后点击管理网站设置
单击Java项,select从下拉列表中阻止访问其他网站时
单击完成,然后关闭 Safari 偏好设置 window

在浏览器中为 java 更改系统范围的首选项:

  1. 在 Java 控制面板中,单击“安全”选项卡。
  2. Select 选项在浏览器中启用 Java 内容。
  3. 单击“应用”,然后单击“确定”以确认更改。
  4. 重新启动浏览器以启用更改。

似乎有比允许 Java 在浏览器上下文中执行并依赖于每个浏览器分别禁用 Java 更细粒度的选项:

Java Deployment Rules let you specify towards the Java runtime which URLs should Java be allowed to execute code from. This way, you don't have to care how the users have their browsers configured. Java Deployment Rules seem to be the "managed" counterpart (think: group policy) to the Exception Site List that you can see in msj121's

对我来说,这似乎是最安全的选择,因为您可以集中定义只有您提到的一个 JWS 应用程序的 URL 可以执行,而所有其他 JWS 应用程序或小程序将被执行已屏蔽。