Possibile, ma improbabile. Perché?
Consentitemi di darvi alcune informazioni di base. Ho visto persone ossessionare su presunte "vulnerabilità XSS" in jQuery e molte altre librerie, ecco un esempio:
$('#inputElement').keyup(function () {
$('#someDiv').html($(this).val())
});
Alcuni sostengono che questo codice è vulnerabile a XSS, il che non è vero. Sì, puoi poter scrivere JavaScript nel campo di input e farlo eseguire (ad esempio <script>alert(document.cookie)</script
), ma allora? Puoi già farlo con qualsiasi applicazione che ti dà la console JavaScript (Firebug), diamine, puoi anche farlo con Greasemonkey.
Può essere considerata una vulnerabilità XSS solo se i dati esterni all'app vengono utilizzati all'interno della tua app ingannando l'utente in URL dannosi o inviando un modulo appositamente predisposto. Ecco un esempio:
$(document).ready(function () {
$('#someDiv').html(window.location.hash)
});
Ora questo è vulnerabile a XSS, un utente malintenzionato potrebbe creare il seguente URL
http://example.com/search/searchQuery+<script>alert(document.cookie)</script>
O anche utilizzare alcuni servizi di abbreviazione URL per rendere l'attacco un po 'più offuscato. Il punto è che in questi casi devi preoccuparti.
Se il lato client della tua webapp utilizza dati dall'esterno ed è possibile che l'utente legittimo non abbia il controllo su di esso (come nel caso precedente), allora devi preoccuparti.
Un altro esempio che utilizza le librerie fallback di History API, come jQuery BBQ (analizza window.location.hash
) che potrebbe essere vulnerabile e in qualche modo consente di eseguire il codice nell'URL.
Ricorda che questa risposta è strettamente pertinente alla tua domanda; Attacchi XSS relativi alle librerie JavaScript.