2012-07-12 96 views
0

在我們的應用程序中,我們有一個類GlobalPage.cs這個頁面繼承自Page我們有頁面加載覆蓋等。它被稱爲我們的注意力,我們需要添加一些安全性,我們的網頁包含文本框(一些是ASP文本框和其他人是HTML輸入)。我們想要做的是能夠從一個地方全局檢查所有這些字段,而不是在每個頁面上單獨執行。我們如何才能實現,可能使用GlobalPage.cs全局跨站點腳本操作

我將不勝感激任何意見或幫助。

+0

什麼樣的檢查?你如何想象這個工作? – Oded 2012-07-12 18:09:28

+0

我想象一下,說任何人在mypage.aspx中輸入somethign,所以它必須通過加載或提交過程來擊中GlobalPage.cs,所以我想檢查來自這一個地方的某些輸入,檢查html等標籤。並編碼它們。 – user1416156 2012-07-12 18:12:38

+1

您可以在基礎頁面上覆蓋'page_load'並檢查表單元素是否有效,但這可能會使事情減慢很多。 – Oded 2012-07-12 18:13:36

回答

1

已經有一些內置的保護免受惡意輸入。確保你沒有關掉它。

<pages validateRequest="true"...> 

傳入值本身不是XSS的問題。它會導致出現問題的非轉義值。所以,雖然消毒輸入有點用處,但不能替代正確的輸出編碼。

考慮閱讀有關ASP.Net中XSS保護的現有信息,如How To: Protect From Injection Attacks in ASP.NET(2.0,請注意,4.0 - ASP.NET Request Validation中有更改)。

+0

你好,是啊,我已經經歷了這一切,我們已經啓用了一切,但仍然有一些輸入,asp.net沒有檢查,我可以在電子郵件輸入這個「[email protected]」onMouseOver = alert( 222)//然後我將鼠標懸停在由它生成的鏈接上彈出 – user1416156 2012-07-12 18:22:48

+0

@ user1416156,因此您已經在代碼中對「輸出的正確編碼」進行了評論和修復,仍然存在問題?聽起來很奇怪。無法驗證輸入的方式,以便在根據輸入值呈現HTML時,HTML呈現代碼的所有可能的變體都不會導致XSS錯誤 - 您必須*正確*轉義所有來自用戶輸入的值,無例外或這個捷徑。 – 2012-07-12 18:32:56

+0

基本上我們有asp驗證和一些文本框驗證輸入,但顯然有一些缺少驗證,所以我想在全局頁面中創建一些東西來檢查任何javascript或html標記或攻擊的輸入 – user1416156 2012-07-12 18:37:49