Javascript 清理location.hash

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

我们正在使用checkmarx运行安全分析,在下面的函数checkmarx highlight location.hash中,它表示客户端的严重性。\u DOM_XSS。
如何正确清理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中包含的任何恶意脚本,但我肯定不会指望它。。。