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