前言
系統被 Checkmarx 掃出有 Client_Heuristic_Poor_XSS_Validation 的 問題要怎麼解呢?
Checkmarx 說 Client 端的 Poor_XSS_Validation 表示在 JavaScript 處理 DOM base XSS 時,
使用了不夠完整的過濾 Method,例如,escape, encodeURI 等等…
修正
以下為修改前的 JavaScript1
2
3
4var x = escape(window.location.search);
var d = document.createElement('div');
d.innerHTML = x;
document.body.appendChild(d);
主要從 window.location.search 取得資料,但只是透過簡單的 escape 過濾。
可以改用 DOMPurify 的 sanitize Method,如下,
1 | var x = DOMPurify.sanitize(window.location.search); |