有一個用於清理數據的Node.js項目,並且有一個用於處理消毒以防止XSS的JavaScript的OWASP庫。我的應用程序不需要任何動態HTML(由用戶提交,bbtags或者其他任何不需要的),所以爲什麼不這樣做呢?爲什麼不這樣做呢?爲什麼不這樣做呢?爲什麼不這樣做呢?爲什麼不這樣做?這樣的:Javascript XSS預防
- 禁用「
<
」和「>
」字,不能代替或什麼,只是禁用它們,如果用戶提交這些,給他們一個警告,這些被禁用(客戶端和服務器 - 側驗證) &
=>&
"
=>"
'
=>'
/
=>/
- 編碼提交的URL(GET參數等) 基於自我的申請XSS覆蓋
- DOM使用HTML5 pushState的和後端是完全與前端分開。
這將是足以保護自己,正如我所說,我的應用程序不需要用戶提交的任何HTML,所以我沒有在所有需要的<
和>
標籤。
感謝所有的反饋,這是我用現在:
var pattern = /<(.*)>/;
function hasHtmlTags(string) {
return pattern.test(string);
};
if (hasHtmlTags(userData)) {
// Do something?
} else {
// Create entity.
}
因此用戶仍然可以使用他們的表情:<和這樣的,而且功能只被觸發如果<和>組合被發現。所以沒有昂貴的正則表達式等,只是禁用<和>組合,我們應該沒問題。
我明白了,但用戶不使用它是見於Ger.Offen,如果他們這樣做,他們是不是必需的。所以我想,爲什麼不放過這些矯枉過正和禁用它們。 – onlineracoon
它應該是足夠的,[只要你指定你的字符編碼](https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#UTF-7_encoding)。 – user2428118