0

我有,我已經把驗證代碼,不要讓<script>標籤和Javascript代碼一個文本,但用戶可以像<strong onmouseover=alert(2)>輸入描述。過濾出JavaScript注入

因此,當有人懸停在此字符串標籤JS警告框出現。

我該如何阻止這種JavaScript注入?

回答

0

有很多稱爲html淨化器的工具。例如,您可以嘗試this

0

最簡單的答案是replace(/</g,'&lt;');,但當然防止任何 HTML被使用。這就是BBCode,Markdown和其他類似語言存在的原因:提供格式化功能而不授予用戶發佈任意代碼的權限。

或者,只是搜索模式/\bon[a-z]+=/i

0

的事情你需要正確過濾您允許HTML。正如你發現的那樣,這不是微不足道的。 (您可能需要禁止iframe和其他幾個元素。)

正確的消毒需要白名單中的元素,並且在這些白名單中包含每個元素允許的屬性。顯然,各種onXyz屬性不在白名單中。

消毒必須發生在服務器端,因爲任何客戶端都可以被繞過。所以不知道你使用的服務器技術,不能推薦一些東西。例如,JSoup對於Java來說是衆所周知的,但當然,如果您不使用Java,那對您沒有用處。 :-)對於.NET,還有的HTML Agility PackMicrosoft Anti-XSS library,但是這是一個非常不全名單。