(sau așa cum se numește în unele texte, “type-0 XSS”) este un atac XSS în care sarcina utilă de atac este executată ca urmare a modificării “mediului” DOM din browserul victimei utilizat de scriptul original din partea clientului, astfel încât codul din partea clientului să ruleze într-o manieră “neașteptată”. Adică, pagina însăși (răspunsul HTTP care este) nu se schimbă, dar codul din partea clientului conținut în pagină se execută diferit din cauza modificărilor rău intenționate care au avut loc în mediul DOM.
acest lucru este în contrast cu alte atacuri XSS (stocate sau reflectate), în care sarcina utilă de atac este plasată în pagina de răspuns (din cauza unui defect din partea serverului).
video POC
HTML Escape apoi JavaScript Escape înainte de a insera date de încredere în subcontextul HTML în contextul de execuție
exemplu metode HTML periculoase
atribute
element.innerHTML = “<HTML> etichete și marcare”;
element.outerHTML = “< HTML> etichete și marcare”;
metode
document.scrie (“<HTML> etichete și marcare”);
document.writeln (“<HTML> Tag-uri și markup”);
orientarea
pentru a face actualizări dinamice la HTML în condiții de siguranță DOM, OWASP recomanda
a) codificare HTML, și apoi
B) codificare JavaScript toate intrare nu sunt de încredere, așa cum se arată în aceste exemple:
element.innerHTML = ” <%=codificator.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”;
element.outerHTML = ” <%=codificator.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”;
document.scrie (“<%=Encoder.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);
document.writeln(“<%=Encoder.encodeForJS(Encoder.encodeForHTML(untrustedData))%>”);