ASP.NET下XSS跨站脚本攻击的过滤方法

安全 应用安全
做WEB开发当然要防止跨站脚本攻击了,尤其是开发BLOG、论坛、购物平台等可以让用户添加自定义内容的网站。

做WEB开发当然要防止跨站脚本攻击了,尤其是开发BLOG、论坛、购物平台等可以让用户添加自定义内容的网站。

有些开发者选择了将所有Html内容都过滤掉,但是这些不适合有些需要将自定义内容开放给用户的网站,比如淘宝、cnblogs、CSDN这样的网站。

在.net下也有一些Xss过滤工具,但是这些工具都会将HTML过滤的很彻底,比如会将:

<span style="color:red">文字</span>

过滤成

<span>文字</span>

而另外一些,虽然保留了很多元素,但是会有很多安全隐患,比如无法过滤这样的跨站脚本攻击:

<div style="background-image:url(alert('xss'))">文字</div>

<img src="alert('xss too')" />

在 .net 环境下,始终找不到成熟合适的 XSS 过滤工具。

后来在找到了基于java开发的AntiSamy,完全符合既保留用户输入HTML,又能保证安全的过滤工具。AntiSamy是基于白名单的技术,即只保留安全的内容,而且白名单可以让开发者进行配置。虽然AntiSamy也有.net版本,但是那是一个半成品,惨不忍睹。于是只好把Java下的AntiSamy封装成WebService,供.net程序调用。当然,这需要你有独立的服务器,虚拟主机是不行了。

如果只想使用,则只下载WAR文件就可以了。

运行环境是TOMCAT 7,JDK 1.6。www.2cto.com

将War包复制到Tomcat安装目录下的webapps目录,然后启动Tomcat即可。

启动Tomcat后,会自动解压缩War包,如需更改过滤配置,可以修改Tomcat目录下的

webapps\XssFilter3\WEB-INF\conf\antisamy-config.xml

保存后,重启Tomcat即可生效。

以下是我封装好的 Java WebService 源码和 WAR 文件的下载地址:

http://www.2cto.com/soft/201211/35199.html

如果只想使用,则只下载WAR文件就可以了。

运行环境是TOMCAT 7,JDK 1.6。

将War包复制到Tomcat安装目录下的webapps目录,然后启动Tomcat即可。

启动Tomcat后,会自动解压缩War包,如需更改过滤配置,可以修改Tomcat目录下的

webapps\XssFilter3\WEB-INF\conf\antisamy-config.xml

保存后,重启Tomcat即可生效。

默认WebService地址是

http://[youserver]:[yourport]/XssFilter3/services/AntiSamyFilter

.net环境下得到wsdl的地址是

http://[youserver]:[yourport]/XssFilter3/services/AntiSamyFilter?wsdl

责任编辑:蓝雨泪 来源: 2cto
相关推荐

2013-01-11 17:33:46

2012-11-15 09:51:36

2010-09-10 14:13:11

2017-06-14 16:08:31

2020-12-21 09:40:06

脚本攻击XSS漏洞

2015-02-01 09:26:10

2012-04-12 14:45:13

2010-06-07 20:19:49

2010-09-29 15:33:51

2010-09-09 11:19:10

2010-06-30 16:26:05

2010-09-27 17:37:10

2009-03-09 17:19:53

2009-07-28 13:26:34

Render方法ASP.NET

2011-01-26 11:09:07

2015-11-19 09:26:01

ASP.NET跨平台实践

2014-01-23 13:39:03

2009-07-24 14:36:10

ASP.NET跨页面传

2009-07-22 18:08:00

ASP.NET跨页提交

2015-06-30 08:37:12

ASP.NET.NET
点赞
收藏

51CTO技术栈公众号