... / 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, "&");
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的需要吗?
谢谢!