document.referrerxss攻擊的防御方法:
可通過查看代碼是否有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()等。