Javascript 清理location.hash
我们正在使用checkmarx运行安全分析,在下面的函数checkmarx highlight location.hash中,它表示客户端的严重性。\u DOM_XSS。Javascript 清理location.hash,javascript,xss,Javascript,Xss,我们正在使用checkmarx运行安全分析,在下面的函数checkmarx highlight location.hash中,它表示客户端的严重性。\u DOM_XSS。 如何正确清理location.hash以防止以下情况下的攻击 function getParameterByName(name) { name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var regex = new RegExp
如何正确清理location.hash以防止以下情况下的攻击
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(**location.hash**);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
var ec = getParameterByName('errCode');
var en = getParameterByName('errorName');
var em = getParameterByName('errorMessage');
var el = document.getElementsByClassName("txtErrMsg");
var msg = (ec == '' ? '' : ec + ' | ') + (en == '' ? '' : en + ' | ') + (em == '' ? '' : em + ' | ');
if(msg.length > 3){
msg = msg.substring(0, msg.length - 3);
}
el[0].innerHTML = msg;
el[1].innerHTML = msg;
提供此问题的任何参考/解决方案使用
el[0]。textContent=
而不是el[0]。innerHTML=
,如果有人越过了你的RegExp守门员,这并不重要。如果您需要数字,那么Number(strUntrustworthy)
将返回一个良性结果。这是有意义的,但我们是否可以添加任何函数来检查location.hashmaybe中包含的任何恶意脚本,但我肯定不会指望它。。。