您位于: 首页 OWASP项目 OWASP AntiSamy.Net

OWASP AntiSamy.Net

项目简介:

OWASP AntiSamy.Net项目可以有好几种定义。技术上讲,它是一个API,用来确保确保用户输入的HTML/CSS符合应用规范。换句话说,这个API可以确保用户无法在HTML中提交恶意代码,这些恶意代码提交通常被存储在用户输入的个人资料、评论等会被服务端持久化的数据中。对Web应用来讲,“恶意代码”通常是指Javascript脚本。CSS样式在调用Javascript引擎,执行恶意脚本的时候,其CSS也可以被认为是恶意代码。当然,通常一些看起来“正常”的HTML和CSS也会被用于恶意的目的,所以我们也会对此予以处理。

哲学意义上,AntiSamy.NET是不同于现代安全机制的。通常,出于安全考虑,安全机制和用户之间大多是一种单向沟通。让攻击者明白漏洞验证是不行不通的,否则会允许攻击者学习和侦查到系统运行机制以找到薄弱环节。这种类型的信息泄露通常会造成意想不到的后果。比如一个登录系统,告诉用户“用户名不存在”。这其实是想攻击者泄露出一个信息:这个用户名在系统中确实不存在而不是不是“用户名或者密码错误”。攻击者可以使用一个字典,一个电话本,或者二者结合,通过不断进行登录请求验证,最终得到一个有效的用户列表。利用这些信息,攻击者可以使用暴力穷举破解,或者引发大规模的账户锁定从而造成拒绝服务攻击。当然,这种安全机制也可以用于其他的应用,比如留言提交,当攻击者提交的输入内容含有攻击特征字符的时候,就进行阻断,同时告知对方提交的内容中含有恶意字符,从而使攻击者无法轻易知道需要替换哪些字符来绕过验证模块。

但是,这种策略在当前的情况下却并不实用。普通的互联网用户大多都不熟悉HTML和CSS,那么他们从哪儿获取自己需要的网页内容呢?通常他们只是从其它Web页面上进行拷贝。如果验证模块直接拒绝用户的输入,而不提供任何有价值的提示信息,这会让用户感到不知所措。恶劣的用户体验可能会让用户选择别的网站,从而离你远去。OWASP的授权许可政策(详见OWASP网站的会员FAQ页面)允许OWASP项目在任何被批准的开源协议下发布。基于此,AntiSamy项目给予BSD协议进行发布。

从社会经济学角度,AntiSamy.NET是“大众利器”。一些私有公司例如Google, MySpace, eBay等等,开发出一些专有的解决方案来应对这些(安全)问题。这造成两个问题,一个是这些专有的解决方案通常不是那么好用;另外一方面,即使它们很好用,这些公司也通常并不情愿将这些辛苦完成的解决方案免费开放给公众使用。幸好,我们无所谓。没有道理只有这些私有公司才能拥有这些功能,所以我们免费发布了AntiSamy.NET。

 

项目参与人员:

Beta版审核 akast 2011年4月22日(计划)

项目任务参与人员完成时间
翻译 Joey Yin,zlty 2011年4月2日
Alpha版审核 张平 2011年4月6日
Beta版审核 梁兴开 2011年4月12日

 

版本下载

OWASP AntiSamy .NET中文Beta版

原项目链接:

OWASP AntiSamy .NET

AntiSamy培训:

OWASP AntiSamy 培训