InfoQ

新闻

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

作者 Scott Delap译者 胡键 发布于 2007年4月10日 上午6时54分

社区
Java
主题
安全
标签
HDIV,
Struts
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

没有回复

回复

独家内容

专访开源项目Amoeba架构师陈思儒

DBA notes站长冯大辉(Fenng)代表InfoQ中文站采访了分布式数据库Proxy开源项目Amoeba的架构师和主要开发者陈思儒,内容包括Amoeba项目的起因、功能及其愿景等。

使用JSF、Ajax和Seam开发Portlets(2/3)

作为三期系列文章的第二部分,本文延续了上一期内容,介绍了RichFaces,包括如何把RichFaces集成到之前提到的示例应用中、如何部署RichFaces porlet和RichFaces的多种特性和功能。

Jeff Barr谈论Amazon Web服务

Amazon Web Services(AWS)的传道者Jeff Barr讨论了SimpleDB、S3、EC2、SQS、云计算、Amazon的不同服务如何与应用交互、AWS的起源、SimpleDB和微软SQL Server Data Services、AWS cloud的全球化、三月份的AWS停机。

用Erlang实现领域特定语言

Erlang的并发模型很有名,它的健壮性也很有名。但其他方面呢?在这篇文章里,Dennis Byrne演示了如何用Erlang建立内部DSL。

基于Rails的企业级应用剖析

本视频主要以FreeWheel为例,对一个基于Rails的企业级应用进行了剖析。其中包括:FreeWheel的架构、部署、数据库的问题、REST API、敏捷开发过程、如何去写测试以及持续集成等等。

JavaFX技术预览

JavaFX显示了Sun的Java系列产品市场方向的一个重大转变。随着1.0版的即将发布,InfoQ以JavaFX预览版为参考,与Sun高级工程师Joshua Marinacci探讨了即将发布的1.0正式版。

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。