ASP.NET下XSS跨站腳本攻擊的過濾方法
做WEB開發(fā)當(dāng)然要防止跨站腳本攻擊了,尤其是開發(fā)BLOG、論壇、購物平臺(tái)等可以讓用戶添加自定義內(nèi)容的網(wǎng)站。
有些開發(fā)者選擇了將所有Html內(nèi)容都過濾掉,但是這些不適合有些需要將自定義內(nèi)容開放給用戶的網(wǎng)站,比如淘寶、cnblogs、CSDN這樣的網(wǎng)站。
在.net下也有一些Xss過濾工具,但是這些工具都會(huì)將HTML過濾的很徹底,比如會(huì)將:
<span style="color:red">文字</span>
過濾成
<span>文字</span>
而另外一些,雖然保留了很多元素,但是會(huì)有很多安全隱患,比如無法過濾這樣的跨站腳本攻擊:
<div style="background-image:url(alert('xss'))">文字</div>
<img src="alert('xss too')" />
在 .net 環(huán)境下,始終找不到成熟合適的 XSS 過濾工具。
后來在找到了基于java開發(fā)的AntiSamy,完全符合既保留用戶輸入HTML,又能保證安全的過濾工具。AntiSamy是基于白名單的技術(shù),即只保留安全的內(nèi)容,而且白名單可以讓開發(fā)者進(jìn)行配置。雖然AntiSamy也有.net版本,但是那是一個(gè)半成品,慘不忍睹。于是只好把Java下的AntiSamy封裝成WebService,供.net程序調(diào)用。當(dāng)然,這需要你有獨(dú)立的服務(wù)器,虛擬主機(jī)是不行了。
如果只想使用,則只下載WAR文件就可以了。
運(yùn)行環(huán)境是TOMCAT 7,JDK 1.6。www.2cto.com
將War包復(fù)制到Tomcat安裝目錄下的webapps目錄,然后啟動(dòng)Tomcat即可。
啟動(dòng)Tomcat后,會(huì)自動(dòng)解壓縮War包,如需更改過濾配置,可以修改Tomcat目錄下的
webapps\XssFilter3\WEB-INF\conf\antisamy-config.xml
保存后,重啟Tomcat即可生效。
以下是我封裝好的 Java WebService 源碼和 WAR 文件的下載地址:
http://www.2cto.com/soft/201211/35199.html
如果只想使用,則只下載WAR文件就可以了。
運(yùn)行環(huán)境是TOMCAT 7,JDK 1.6。
將War包復(fù)制到Tomcat安裝目錄下的webapps目錄,然后啟動(dòng)Tomcat即可。
啟動(dòng)Tomcat后,會(huì)自動(dòng)解壓縮War包,如需更改過濾配置,可以修改Tomcat目錄下的
webapps\XssFilter3\WEB-INF\conf\antisamy-config.xml
保存后,重啟Tomcat即可生效。
默認(rèn)WebService地址是
http://[youserver]:[yourport]/XssFilter3/services/AntiSamyFilter
.net環(huán)境下得到wsdl的地址是
http://[youserver]:[yourport]/XssFilter3/services/AntiSamyFilter?wsdl