2010-06-28 53 views
7

使用.net 4,有一個新的<%:%>腳本框,就像<%=%>但是做了一個html編碼。人們鼓勵使用這種新的語法。<%: %> vs Microsoft反XSS庫

我的問題是,<%:%>是否能更好地防止XSS或使用Microsoft Anti XSS庫?

一位微軟安全人員曾告訴我不要只使用HTML編碼,因爲它不能很好地保護,我應該總是使用Anti XSS庫(或其他庫)。這與<%:%>仍然如此嗎?或者我可以自信地使用<%:%>知道它會像人們所說的那樣保護我的應用程序免受XSS影響?

回答

9

HttpUtility.HtmlEncode採用了黑色列表(排除原則)的方式來編碼,這可能留下了迴旋的餘地了在未來新發現漏洞。 Anti-XSS library(現在稱爲Web保護庫,幷包含用於緩解SQL注入的代碼)使用白名單方法(包含原則),它可以進一步關閉門並提供更好的安全性。

<%: ... %>只是<%= Server.HtmlEncode(string) %>的快捷方式,因此提供了應用程序中使用的編碼器的安全性。

你可以使用你的新<%: ... %>語法喜歡的任何編碼器和菲爾哈克對hooking up the Anti-Xss library as the default encoder一個偉大的職位。請記住,目前Anti-XSS庫3.1需要中等信任才能運行 - 這是針對未來版本的要求。

+0

我不知道如何將<%: %>連接到不同的編碼器。這很酷。 – dtc 2010-06-30 01:54:59

1

新語法只能用於轉義HTML中的原始文本內容。 編輯:和屬性。

屬性, JavaScript和其他情況下,你仍然應該使用防XSS庫,

+0

Anti-XSS庫爲HTML和屬性編​​碼提供更安全的編碼 – orip 2010-06-30 14:36:58

相關問題