消毒location.hash

时间:2016-03-31 05:59:31

标签: javascript xss

我们使用checkmarx运行安全性分析,在下面的函数checkmarx中突出显示location.hash,它表示Client_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;

提供此问题的任何参考/解决方案

0 个答案:

没有答案