(eller som det kaldes i nogle tekster, “type-0”) er et angreb, hvor angrebets nyttelast udføres som et resultat af at ændre DOM “miljøet” i offerets bro.ser, der bruges af det originale klientsidescript, så klientsidekoden kører på en “uventet” måde. Det vil sige, at selve siden (det HTTP-svar, der er) ikke ændres, men klientsidekoden indeholdt på siden udføres forskelligt på grund af de ondsindede ændringer, der er sket i DOM-miljøet.
dette er i modsætning til andre angreb (gemt eller reflekteret), hvor angrebets nyttelast er placeret på svarsiden (på grund af en serversidefejl).
video POC
HTML Escape derefter JavaScript Escape, før du indsætter data, der ikke er tillid til, i HTML-undertekst inden for Eksekveringskonteksten
eksempel farlige HTML-metoder
attributter
element.innerHTML = “<HTML> Tags og markup”;
element.outerHTML = “<HTML> Tags og markup”;
metoder
dokument.skriv (“<HTML> Tags og markup”);
dokument.skrivn (“<HTML> Tags og markup”);
retningslinje
for at lave dynamiske opdateringer til HTML I DOM safe, anbefaler vi
a) HTML-kodning, og derefter
b) JavaScript-kodning af alle ikke-betroede input, som vist i disse eksempler:
element.innerHTML = ” <%=Encoder.encodeForJS (Encoder.encodeForHTML(untrustedData))%>”;
element.outerHTML = ” <%=Encoder.encodeForJS (Encoder.encodeForHTML(untrustedData))%>”;
dokument.skrive (“<%=Encoder.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);
document.writeln(“<%=Encoder.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);