用戶可以在文本框中格式化他們的html。然後將其發送到後端進行驗證。其他用戶可能會看到這個文本框。如何檢查C#中的任何html <script>標記,以及其他任何令人討厭的內容?
我想檢查後端的任何標籤。我知道這可以用一個相對簡單的正則表達式來完成。我只想做一些像<\s*?script\s*?>
我的問題,雖然是如果有人做這樣的事情:
<a href="http://example.com" onClick="alert(1);">test</a>
這將通過驗證。我也可以對onClick進行正則表達式檢查,但我相信還有其他解決方法。
我的問題:有沒有一種很好的方法來做到這一點?我只需要依靠正則表達式和我自己的研究來找出他們可以如何運行腳本?
編輯
我想我可以創造什麼,他們可以進入白名單。這主要是爲了格式化文本,所以<b>, <i>, <h>
等。這可能或可能不是一個可接受的解決方案,但我需要看看,看看實際的用例是什麼。我希望有一個不同的解決方案。
移除所有的HTML標籤創建的JS功能的陣列,然後通過函數解析HTML檢查許多「封鎖」的關鍵字 – 2013-02-22 15:08:07
之一是否需要用戶輸入_any_ html? – Magnus 2013-02-22 15:08:54
不知道這是否可能是你問的問題,但可能值得檢查:http://stackoverflow.com/questions/4683907/asp-net-mvc-validation-of-script-tags和http:/ /wpl.codeplex.com/它可能仍然是相關的,因爲你正在處理HTML中的JavaScript。 – 2013-02-22 15:08:57