可通过查看代码是否有document.write、eval、window之类能造成危害的地方,然后通过回溯变量和函数的调用过程,查看用户是否能控制输入。如果能控制输入,就看看是否能复习,能复习就说明存在DOM XSS,需要对输入的数据进行编码。
代码审计时审计的特征点有:
var elements = location.hash;
elements.indexOfvar oBtn=document.getElementById("Btn");
oBtn.innerHTML
oBtn.outerHTMLdocument.createElement
oBtn.setAttribute
oBtn.appendChild
document.write
document.writelneval("var x = '" + location.hash + "'");
setTimeout("alert('xss')", 1000)
window.setTimeout
document.setTimeout
window.setIntervaldocument.execCommand('ForeColor',false,'#BBDDCC');
document.createElement
document.createElementNS
document.createEvent
document.createXxx
注:当业务需要必须得将用户输入的数据放入html,那就要尽量使用安全的方法,比如innerText(),testContent()等。
亿速云高防服务器,全球多节点部署分布式防御,单个点1000G 防御,总体防御超5000G DDOS,AI智能防御CC攻击。点击查看>>
推荐阅读:ddos攻击怎么防御