È passato un po 'di tempo da quando ho giocato con le vulnerabilità di cross-site scripting, ma oggi mi sono imbattuto in un sito web che cercava di provare una vulnerabilità XSS di base.
Così doverosamente digitato:
http://example.com?query=<script>alert('hey!')</script>
Ed è stato piuttosto sorpreso quando I non è stato incontrato con una casella di avviso che mostrava il messaggio "hey!".
Ho controllato la fonte e ho potuto vedere che il codice era stato iniettato chiaramente e quando ho provato qualcosa di più semplice come:
http://example.com?query=<h1>hey!</h1>
Ha iniettato l'HTML come previsto.
Questo è quando ho controllato il mio log degli errori e ho visto questo messaggio (in Chrome):
Refused to execute a JavaScript script. Source code of script found within request
Dopo un po 'di indagini ho scoperto che questa è una funzionalità chiamata " Protezione XSS riflettente "che è stato introdotto nel webkit. Se il codice viene visualizzato sia nella query che nel corpo, non verrà eseguito.
Quindi la mia domanda: quando ho giocato in passato con lo scripting cross-site, questo è fondamentalmente il modo in cui l'ho fatto. Ciò elimina in modo efficace una grande quantità di attacchi XSS o solo quelli primitivi?