2012-05-08 49 views

回答

2

我們很長一段時間爲此目的進行了內部開發,但最終微軟爲它提供了一個庫。我們現在完全用這個庫替換了我們的庫。

string sanitizedString = Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(string myStringToBeChecked); 

用這種方法唯一的問題是,它修剪了與行結束字符分隔的多個空格:如下它可以簡單地被使用。如果你不希望發生這種情況,你可以考慮首先將字符串分割成行尾字符(\ r \ n),然後計算這些分割字符串前後的空白字符數,應用清理程序,將空白字符返回並連接。

除此之外,Microsoft庫工作正常。

+0

感謝它的工作:) – User05

+1

不幸的是,AntiXSS.GetSafeHtmlFragment()原來是在舊版本的脆弱的和無用的最新版本(V 4.2.1。) - 現在去掉幾乎所有的HTML標籤可能成爲不可用:( – BornToCode

0

以下列方式保護跨站點腳本攻擊。

1. Use HtmlEncoding while saving the input content that is received from web application controls usch as textbox etc. 
2. Use InnerText instead of InnerHtml while displaying data on the page. 
3. Do the input sanitization before saving the data into database.