L'app utilizza il metodo html_safe, possibili problemi

0

Per chi non lo sa, .html_safe è il metodo rails, che emette le stringhe come parte del documento html. Il problema è che la stringa è stata inserita dall'utente. Cosa ho fatto per evitare alcune cattive azioni: inserzioni di regexp dopo ogni < o > simbolo invisibile, che interrompe tutti i tag, che potrebbero essere parte di html del documento. Ma sento ancora un po 'insicuro - protegge la pagina? Qualunque altro modo di usare .html_safe , tranne i tag, o il simbolo non mi protegge abbastanza?

    
posta Joe Half Face 04.06.2013 - 04:10
fonte

1 risposta

2

Ecco un articolo che spiega in dettaglio come effettivamente html_safe lavori. In breve, dovresti non chiamare .html_safe in stringhe non attendibili o in stringhe contenenti altre stringhe non attendibili (ad esempio "trusted #{untrusted} trusted" ).

Se hai una stringa attendibile (non inserita dall'utente) che ti serve senza caratteri di escape, puoi chiamare html_safe in essa e procedere aggiungendo altre stringhe (o aggiungendola ad altri SafeBuffer s). Ogni stringa regolare aggiunta a SafeBuffer verrà sfuggita e quindi non può causare vulnerabilità XSS. Se si concatena il due% diSafeBuffer s, tuttavia, non si verificherà alcun escaping.

Inoltre, secondo l'articolo collegato, il rendering di ogni vista inizia con am vuoto SafeBuffer , quindi ogni stringa che aggiungi ad esso verrà sfuggita per impostazione predefinita.

    
risposta data 04.06.2013 - 07:08
fonte

Leggi altre domande sui tag