2013-10-22 47 views
0

我有一個內部應用程序(無法從我們網絡外部訪問)具有多行文本框。已知用戶(同事)將Outlook或MS Word中的文本複製/粘貼到包含電子郵件地址的此文本框中。當發生這種情況時,他們得到此錯誤:過濾輸入以避免「從客戶端檢測到潛在危險的Request.Form值」

從客戶端(ctl00 $ ContentPlaceHolder1 $ txtIssueDesc =「... Name < email @ domain ...」)檢測到有潛在危險的Request.Form值。

有沒有方法去掉<>之間的內容,然後才能將錯誤放入數據庫,然後再編輯而不會出現任何問題?

我們正在使用的微軟的Visual Studio 2008中

VB.NET V3.5預先感謝您。

回答

2

你可以做一兩件事情的組合:

1)看看這個答案,以抑制錯誤https://stackoverflow.com/a/2955378/1000175

2)使用客戶端上的正則表達式來剝離<和>和之間的內容。要做到這一點,你可以添加一個onclick事件到提交​​按鈕,在提交到服務器之前運行regex replace。

在這兩種情況下,您仍然希望在服務器端運行正則表達式以在保存到數據庫之前驗證任何輸入,並且html編碼任何輸出。

+0

我寧可不壓制錯誤,以防他們實際上錯誤地輸入危險代碼。我只是想解決最常見的錯誤原因。我不確定如何編寫這樣的正則表達式。 – Alverant

+0

你想刪除標籤,還是標籤之間的內容?例如如果用戶輸入了html代碼,那麼只有標籤被剝離了,或者你希望標籤之間的所有內容都被剝離了嗎? – Fisch

0

它與orignal問題沒有直接關係。您可能要考慮使用ASP.Net Ajax FilteredTextBox

只要用戶通過任何內容到文本框,它就會刪除無效字符。您還可以設置哪些字符有效或什麼不是。

例如,以下代碼不允許用戶輸入除_。@之外的特殊字符。

相關問題