Come posso evitare le doppie virgolette in un attacco xss basato su attributi

3

Il codice che ho è:

<input type="text" name="some_name" value="<?php echo CHtml::encode($str); ?>" />

$ str è i dati di input. 'CHtml :: encode ()' è il modo di Yii di codificare caratteri speciali in entità HTML. Questo può essere aggirato?

So che può essere rotto se non metto quelle virgolette sull'input. Ma non penso che solo mettendo le virgolette in giro lo renderà indistruttibile.

    
posta kumar 16.08.2014 - 06:27
fonte

3 risposte

4

Il encode() metodo HTML codifica i caratteri, che è il corretto Metodo di prevenzione XSS in questo contesto.

Quindi se un " carattere è stato inserito all'interno di $str per provare a uscire dal contesto dell'attributo HTML, questo sarebbe convertito in &quot; o &#34; che è la rappresentazione HTML.

Pertanto non è possibile inserire qui lo script, supponendo che encode non abbia difetti in sé che permetta che ciò accada.

    
risposta data 17.08.2014 - 21:35
fonte
3

All'interno del valore attributo (double-quoted ) stato solo il letterale doppi apice " carattere (U + 0022) consente un'uscita corretta da quello stato. Questo è anche il risultato dei fuzzing di caratteri sintatticamente equivalenti al doppio apice negli attributi HTML .

Quindi, se la tua tecnica di mitigazione rimuove uno di questi caratteri letterali, sei al sicuro da qualsiasi XSS che cerca di sfuggire al valore dell'attributo quotato.

Tuttavia, tieni presente che alcuni valori di attributo sono interpretati in modo speciale come on… attributi di eventi, attributi di stile o attributi URI che iniziano con javascript: . Quindi prevenire XSS non è solo una questione di sintassi ma anche di semantica.

    
risposta data 17.10.2014 - 13:36
fonte
-1

Se il sito Web non sta eseguendo alcuna escaping, convalida o sostituzione di caratteri, l'attacco XSS banale è solo:

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

Questo è il motivo per cui ogni sito web dovrebbe fare escaping, convalida e sostituzione o rimozione di personaggi pericolosi.

    
risposta data 16.08.2014 - 07:16
fonte

Leggi altre domande sui tag