文档

Java™ 教程
隐藏目录
保护富互联网应用的指南
路径:部署
课程:使用Java构建富互联网应用

保护富互联网应用的准则

以下准则提供了减少提供给用户的Rich Internet Applications(RIA)的漏洞的步骤。

遵循安全编码准则

遵循Java编程语言的安全编码准则中的建议。第4节“可访问性和可扩展性”描述了如何限制对类和包的可访问性,从而降低代码的漏洞性。

默认情况下,JavaScript代码被视为不安全的,并且受到安全沙箱的限制。最小化RIA与JavaScript代码之间的交互。谨慎使用AccessController.doPrivileged块,因为它允许来自任何HTML页面或JavaScript代码的访问。

使用最新版本的JRE进行测试

确保你的RIA在最新的安全版本的JRE上运行。Java平台支持RIA指定需要运行RIA的Java版本的能力,然而,要求用户维护超过一个版本的JRE,特别是旧的、不安全的版本,对用户来说是一个安全风险。

RIA的一个好处是更新的版本会自动下载到用户的系统上。对每个JRE的更新版本测试你的RIA,并确保它可以正常工作。如果需要更改,请在服务器上更新你的RIA,以便用户可以安装最新的JRE并运行RIA。

包含清单属性

在JAR文件清单中添加描述RIA属性的属性。将JNLP文件或applet标签中的值与清单中的值进行比较,以验证运行正确的代码。

当你的RIA不需要超出安全沙箱的访问时,请求沙箱权限。Java沙箱为用户提供了额外的保护,如果用户不理解为什么应用程序请求对其系统的无限制访问权限,他们可能不会运行特权应用程序。

清单属性还可以用于标识可以访问你的RIA的位置。这包括JavaScript代码可以调用你的RIA的位置,以及可以启动你的RIA的JNLP文件或applet标签的位置。有关可用的清单属性,请参阅使用清单属性增强安全性

使用已签名的JNLP文件

如果您的RIA需要访问非安全系统属性或JVM参数,请使用已签名的JNLP文件。如果需要在外部和内部JNLP文件之间进行某种变化,请使用JNLP模板。有关详细信息,请参阅Java平台标准版部署指南中的已签名的JNLP文件

要访问非安全系统属性或JVM参数,请按照设置可信参数和安全属性中所述,在JNLP文件中包含属性或参数。

对JAR文件进行签名和时间戳

从受信任的证书颁发机构获取代码签名证书,并使用该证书对RIA的JAR文件进行签名。只向用户部署使用有效证书签名的RIA。

在对JAR文件进行签名时,还要对签名进行时间戳处理。时间戳验证证书在签署JAR文件时的有效性,因此当证书过期时,RIA不会自动被阻止。有关签署和时间戳处理的详细信息,请参阅签署JAR文件

自签名和未签名的RIA被认为是不安全的,除非设置了例外站点列表或部署规则集以允许特定应用程序运行,否则不允许运行。然而,自签名对于测试目的可能很有用。要使用自签名的RIA进行测试,可以将自签名证书导入到可信密钥库中。

使用HTTPS协议

对于用户获取您的RIA的Web服务器,请使用HTTPS协议。HTTPS协议通过服务器进行加密和验证,使得任何人都很难篡改您的RIA。

避免使用本地RIA

本地RIA不适用于生产环境。为确保用户运行您打算让他们运行的代码,请将您的RIA托管在应用服务器上。

对于测试,建议使用Web服务器。另一种选择是将您的应用程序添加到例外站点列表中,该列表在Java控制面板的安全选项卡中进行管理。


上一页:富互联网应用中的安全性
下一页:问题和练习:进一步使用富互联网应用