2011-07-27 268 views
4

我無法理解爲什麼需要Server.HtmlEncode? MSDN指出,它用於將潛在的不安全字符編碼爲與HTML編碼等效的字符。爲什麼需要Server.HtmlEncode?

有人可以給我一些想法如何這些字符是不安全的,並要求我們使用Server.HtmlEncode?

謝謝。

+4

用兩個字? XSS攻擊。 http://en.wikipedia.org/wiki/Cross-site_scripting –

回答

10

字符可能不安全的一個示例是用戶在頁面上提交評論。如果評論表單不使用HtmlEncode,則用戶剛輸入的任何內容現在都將作爲頁面上的評論可見。在這種情況下,黑客可以像提交評論如下:

<script language="javascript" type="text/javascript"> 
window.location = 'http://server.com/viruspage.asp'; 
</script> 

對於誰加載頁面,將運行該腳本(因爲它沒有被編碼爲的HTMLEncode),其後每用戶,每一個用戶重定向到一個帶有病毒的頁面。這是一個非常簡單的例子,但還有許多其他輸入惡意數據的方式,甚至可能讓黑客對您的數據庫進行管理訪問。