2009-11-04 109 views
0

因此,我設置了我的表單驗證,輸入,錯誤消息等等,然後意識到我收集的很多信息需要在某個時候再次輸出。正確處理用戶輸入

所以我包裹着我的投入在:

Server.HtmlEncode(txtbox.text); 

還有什麼我應該做的,以確保我避免XSS類型的攻擊?當我將數據寫入頁面時,我應該做些什麼嗎?

回答

1

從安全角度來看,我們的Web表單是裸體且100%易受攻擊的。我們需要看數據傳遞給他們,並測試適當的所有方式:

* Form Fields 
* URL Query Strings 
* Cookies 
* Database 
* ViewState 

的安全Web應用程序MSDN設計準則: http://msdn.microsoft.com/en-us/library/aa302420.aspx

微軟反跨站點腳本庫: http://msdn.microsoft.com/en-us/security/aa973814.aspx

代碼分析工具(CAT.NET): http://www.microsoft.com/downloads/details.aspx?FamilyId=0178e2ef-9da8-445e-9348-c93f24cc9f9d&displaylang=en

ASP.NET數據輸入弗吉尼亞州lidation: http://www.codersbarn.com/post/2008/11/01/ASPNET-Data-Input-Validation.aspx

編輯: 即將推出,新的Web防護庫CTP: http://blogs.msdn.com/securitytools/archive/2009/10/17/web-protection-library-ctp-release-coming-soon.aspx

+0

HTTP://msdn.microso ft.com/en-us/library/ms998274.aspx特定於.NET 1.0/2.0 XSS – Mark 2009-11-04 01:31:20

+0

這裏是一個很好的備忘單 http://ha.ckers.org/xss.html 也可以在這裏閱讀Jeff的帖子 http://blog.stackoverflow.com/2008/06/safe-html-and-xss/ – iJK 2009-11-04 01:54:22

1

我建議,當你輸出數據到頁面,而不是當你收集它的HTMLEncode。 From Stack Overflow podcast #58

不要HTML編碼存儲在數據庫中的數據!以good advice of Damien Guard和Joel Spolsky!您可以選擇存儲這兩種表示,但不要只存儲HTML;以最高級別的精度處理原始數據。

鏈接