如何在javascript中阻止Client DOM XSS漏洞<loadxml>?

时间:2017-09-19 13:57:28

标签: dom

... / js / general.js第200行的方法函数获取用户输入 数据元素。然后,此元素的值将流经客户端代码,而不会进行适当的清理或 验证并最终在/X / js / general.js第241行的loadXML中显示给用户。这可能会导致DOM XSS攻击。

脚本如下:

 success: function(data){
    var xmlObj = loadXML(data);
    ........}

    function loadXML(xmlString){

        xmlString = xmlString.replace(/^\s*|\s(?=\s)|\s*$/g, "");
        xmlString = xmlString.replace(/(&)(?!amp;)/gi, "&amp;");

        try{ 
            xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async="false";
    xmlDoc.loadXML(xmlString);
        }catch(e){
            try{ 
                parser=new DOMParser();
                xmlDoc=parser.parseFromString(xmlString,"text/xml");
            }catch(e){
                alert(e.message);
                return;
            }
        }
        return xmlDoc.documentElement;
    }

DOM XSS攻击的可能性可能是xmlDoc.loadXML(xmlString)。 有人可以帮助我如何消毒上述场景以满足Checkmarx的需要吗?

谢谢!

0 个答案:

没有答案