Perché Script tra siti chiamato Script tra siti? Il termine implica per me (un madrelingua inglese non nativo) che ci sia qualche altro sito web coinvolto che attacca il tuo sito web, ma il più delle volte non è così, vero? (Al diavolo, non sempre include anche lo scripting (alimentazione di JavaScript per l'utente): un'interfaccia HTML simulata è spesso anche una strategia di esecuzione valida.)
A quanto ho capito, ciò che chiamiamo XSS è causato da una fuga insufficiente dell'input dell'utente e avviene principalmente nelle applicazioni web, come mostrato in questa domanda . Ad esempio, la seguente parte di codice è vulnerabile:
<?php
echo $_GET['q'];
?>
Ma il seguente lo corregge [1] :
<?php
echo htmlspecialchars($_GET['q']);
?>
Anche l'input dell'utente può essere memorizzato nel database, e la stessa cosa accade se l'input non è sfuggito quando viene riportato per la visualizzazione. In effetti, questo sembra essere il metodo di attacco più vantaggioso per l'attaccante (colpisce il maggior numero di utenti) e quindi il più utilizzato.
Ritengo che la nebulosità del termine porti a lavori di hacking come rimozione di caratteri offensivi o stringhe da input dell'utente e altre confusioni ( apparentemente permettendo JavaScript valido nel database è sbagliato ) quando le persone inesperte stanno cercando di patchare per questo.
Al posto del termine astruso XSS, qualcosa di simile a mancanza di escape funziona altrettanto bene, ed è molto più chiaro? O c'è qualcosa di più che racchiude il termine XSS?
[1]: Supponendo che siamo nel mezzo di una pagina HTML, naturalmente.