Struts 安全扩展解决 OWASP 高级安全弱点

阅读数:164 2007 年 4 月 10 日

话题:Java安全语言 & 开发架构

HDIV(HTTP Data Integrity Validator,HTTP 数据完整性验证器)项目最近发布了 1.1 版。HDIV 是 Apache 许可的 Struts 安全扩展项目,它为 Struts 1.1 增加了安全功能,维护 API 和 Struts 规范。HDIV 验证包括:来自客户端的可编辑数据,如文本框的输入;以及一些不可编辑信息,如链接、隐藏域、组合框值、单选框和目的页(Destiny pages)等。

这次发布的版本围绕 Cookie 和可编辑数据进行验证:

Cookie 保密性和完整性的验证。

可编辑数据的验证(文本框和文本域):使用可编辑数据的通用验证,HDIV 可以在很大程度上消除源于跨站脚本(Cross-site scripting,XSS)和 SQL 注入(SQL Injection)攻击的风险。用户必须使用 XML 格式的规则来配置通用验证,基于这些定义的限制可以减少或消除攻击的风险。

HDIV 网站上包含一个内容丰富的幻灯片展示:HDIV 如何解决开放 Web 应用程序安全项目(Open Web Application Security Project)的前 10 大网站安全弱点。InfoQ 和项目领导者 Roberto Velasco Sarasola 一起讨论了这个项目。对于创建 HDIV 项目背后的动机,他解释说:

我审查 Web 应用已经有好几年了。它们都有典型的弱点,如 XSS、SQL 注入和参数篡改。主要的原因是:开发者不关心这种类型弱点引起的风险,尤其是由不可编辑数据引起的(选择框、隐藏框、链接……)。

Struts 是主要的 Java Web 框架,但它并没有为这些弱点提供透明的解决途径。Struts Validator 被证明是有用的,但它并没有解决数据的完整性和保密性问题。

接下来 InfoQ 问了些 HDIV 与其它 Web 框架的集成问题,如 JSF:

目前,我们在 Struts 2 版本上进行工作,内部版本已经发布。我们期望下个月会发布一个公开的 beta 版。项目的核心与 Struts 版本一样,唯一的区别是自定义标签,它扩展自 Struts2 的自定义标签扩展。

我们也在 JSF 版本上进行工作,花时间将新功能仔细地集成到 JSF 架构设计。我们期望在两个月内会有一个 beta 版的发布。到那时,我们就把工作集中在易受攻击的组件(如隐藏框、命令链接和输出链接等)、Cookie 验证和目录遍历的弱点上。然后,我们就可以开始从事数据保密性方面的工作。

在最后,InfoQ 还询问了关于 HDIV 未来发展的计划:

受关注的领域仍然相同:非编辑数据的完整性和保密性,可编辑数据的通用验证等。任务是扩展我们的技术,以与其它框架集成(Struts2、JSF 和 AJAX 标签)。我们也从事新特性的开发,如:
  • 可编辑数据验证的自动化。
  • Web 管理工具(可视化日志、配置……)。
  • 产生警报(SMS、Email)。
译者简介:胡键是 InfoQ 中文站的志愿者翻译,自 2000 年西安交通大学硕士毕业后一直从事软件开发。2002 年开始使用 Java,在项目开发中经常采用 OpenSource 工具,如 Ant、Maven、Hibernate、Struts 等,目前正在研究信息集成方面的规范和技术。可以通过jianhgreat AT hotmail.com与他联系,或访问博客:http://foxgem.javaeye.com/。加入 InfoQ 中文站志愿者翻译队伍,请邮件至china-editorial@infoq.com