2016-06-30 50 views
0

我的asp.net mvc應用程序使用angujar js具有以下正則表達式來阻止輸入字段中的XSS數據。阻止XSS並允許在asp.net mvc應用程序輸入字段中輸入&#

^[^&<>\\\\\"'{}=#]*$ 

但問題是,我的大部分客戶數據有&和#,它不能被糾正。請解釋允許這兩個字符並仍然阻止XSS攻擊的最佳方法。

編輯1 我可以嘗試這樣的事情,想,如果我允許&和#和只有一個&允許或只有一個#是允許的,要麼&或#被允許的,但這樣的方式添加驗證如果這些字符不止一次,則不能同時限制。我將把這個驗證放在客戶端和服務器端。這是一個好方法嗎?

+0

這個正則表達式在哪裏應用? – Erlend

+0

這是在我們的代碼中添加用於輸入這些字符時拋出的錯誤,它基本上用於驗證JavaScript。 – Harsha

+0

客戶端輸入驗證不會阻止XSS攻擊。除非您在asp.net端複製該檢查,否則無論如何您仍然易受攻擊。 – Erlend

回答

0

避免這種情況的最佳方法是在輸入新數據時不允許#。這意味着您可以允許通過從正則表達式中刪除#來顯示#,但不允許通過處理文本框的按鍵事件來鍵入#。

+0

您的觀點看起來很有效,我現在在UI中顯示這些字符,但我的要求是允許它們發送回到表單中提交併發送回數據庫。 – Harsha

相關問題