Burp ha identificato una potenziale vulnerabilità DOM XSS:
The application may be vulnerable to DOM-based cross-site scripting. Data is read from window.location.href and passed to the 'setAttribute()' function of a DOM element
In questo esempio, il codice vulnerabile è come (non posso includere l'originale per riservatezza):
var thing = windows.location.href;
...
element.setAttribute("fill", thing);
Il OWASP DOM XSS Cheat Sheet dice "Escape JavaScript prima di inserire dati non sicuri nel sottocontext degli attributi HTML all'interno dell'esecuzione Contesto". Non sono abbastanza sicuro di cosa intendano per contesto di esecuzione.
Esegui alcuni test rapidi (in Chrome), questo è vulnerabile:
document.getElementById("bob").setAttribute("onclick", "alert(1)");
Ma non lo è:
document.getElementById("bob").setAttribute("fill", "" onclick="alert(1)");
Dato tutto ciò, ritengo che Burp abbia riportato un falso positivo. Ma temo che mi sia sfuggito qualcosa, quindi un ulteriore input sarebbe apprezzato.
Mi interessa solo se questo è sfruttabile nei browser recenti. Non mi interessa "non è la miglior pratica" o "sfruttabile in IE 4 su un Mac".