富 Internet 应用程序中的安全性

原文: https://docs.oracle.com/javase/tutorial/deployment/doingMoreWithRIA/security.html

富 Internet 应用程序(RIA)背后的安全模型可以保护用户免受恶意 Internet 应用程序的攻击。本主题讨论 applet 和 Java Web Start 应用程序常见的安全性方面。有关更多信息,请参阅以下主题:

RIA 可以限制在 Java 安全沙箱中,或者请求访问沙箱外部资源的权限。第一次启动 RIA 时,系统会提示用户运行权限。显示的对话框提供有关签名者证书的信息,并指示 RIA 是否请求在沙箱外部运行的权限。然后,用户可以做出关于运行应用程序的明智决定。

应用以下指南来帮助保护您的 RIA。

  • 使用来自认可的证书颁发机构的证书对 RIA 的 JAR 文件进行签名。有关更多信息,请参阅签名和验证 JAR 文件主题。
  • 如果 RIA 需要在安全沙箱之外进行访问,请在 JNLP 文件中为 RIA 指定all-permissions元素。否则,让 RIA 默认在安全沙箱中运行。以下代码段显示了 RIA 的 JNLP 文件中的all-permissions元素。

    1. <security>
    2. <all-permissions/>
    3. </security>

    如果使用 applet 标签,请参阅使用 Applet 标签部署以获取有关设置权限级别的信息。

  • JNLP 文件只能包含由同一证书签名的 JAR 文件。如果您有使用不同证书签名的 JAR 文件,请在单独的 JNLP 文件中指定它们。在 RIA 的主 JNLP 文件中,指定component-desc元素以包含其他 JNLP 文件作为组件扩展。有关信息,请参阅 JNLP 文件的结构。
  • 除非您明确启用此功能,否则 RIA 的安全模型不允许来自网页的 JavaScript 代码在签名的 JAR 文件中调用安全敏感代码。在签名的 JAR 文件中,包含希望 JavaScript 代码能够在 AccessController.doPrivileged 块中调用的代码部分。这允许 JavaScript 代码在执行doPrivileged代码块中的代码时以提升的权限运行。
  • 如果可能,请避免在 RIA 中混合特权和沙箱组件,因为它们可能会引发有关混合代码的安全警告。有关详细信息,请参阅混合特权代码和沙盒代码
  • 在 JAR 文件清单中包含PermissionsCodebase属性,以确保您的 RIA 仅请求您指定的权限,并且从正确的位置访问 RIA。有关信息,请参阅安全的 JAR 文件清单属性。
  • JAR 文件清单属性使您可以限制对 RIA 的访问,并有助于确保您的代码不被篡改。有关所有可用的 JAR 文件清单属性的信息,请参阅使用清单属性增强安全性