Aggiungere una virgoletta doppia alla fine di una query di input è un metodo di prevenzione XSS valido?

2

Mi chiedevo se l'aggiunta di un doppio apice alla fine di una query fosse considerata un filtro XSS valido. Diciamo che abbiamo una funzione di ricerca e ho inserito:

"><script>alert('hi')</script>

Se guardo all'origine della query risultante, vedrò quanto segue:

<input name="search" type="text" value=""><script>alert('hi')</script>">

Il doppio preventivo verrà aggiunto automaticamente alla fine della mia richiesta.

Supponendo che il filtro cancelli anche il carattere null e commenti HTML <!-- , sarebbe un filtro XSS efficace o è solo un pio desiderio?

    
posta Alistair 23.03.2013 - 19:21
fonte

1 risposta

2

Non riesco a pensare a nessuna condizione in cui ciò possa mitigare l'XSS. Se un attaccante fornisce <script>alert(1)</script> il risultato sarà: <script>alert(1)</script>" che verrà ancora eseguito.

Inoltre, un utente malintenzionato può commentare la doppia citazione in javascript: alert(1)//"

Non hai bisogno di un commento html per creare codice html valido:

<input name="search" type="text" value=""><script>alert('hi')</script><input name="inject">

Dovresti leggere il foglio trucchi per la prevenzione XSS , XSS è estremamente comune e non dovresti t trovare soluzioni home-brew per problemi ben noti.

    
risposta data 23.03.2013 - 19:26
fonte

Leggi altre domande sui tag