2009-05-15 9 views

risposta

1

Probabilmente per assicurarsi che restituisca una stringa. L'utilizzo che ho visto è quello di prendere input e restituire un valore che è possibile assegnare a una variabile in javascript.

var message = <% = AntiXss.JavaScriptEncode (messaggio)%>;

Ora, non importa quello che era in un messaggio, il messaggio variabile js avranno l'ingresso esatto sfuggito in modo appropriato, quindi se qualche coglione ha cercato di iniettare javascript in quel messaggio che avevano appena vedere il risultato del loro messaggio viene assegnato al messaggio variabile.

+1

Diritto. Ma più spesso mi trovo a usare JavaScriptEncode per codificare input utente non fidato che costituisce * parti * di stringhe e in quello scenario è semplicemente noioso concatenare con '+' o rimuovere manualmente le virgolette. Direi anche che questo non è il comportamento che ci si aspetterebbe in quanto nessuno degli altri metodi fa qualcosa di simile (ad esempio, HtmlAttributeEncode non racchiude il risultato tra virgolette doppie). –

+2

Non potrei essere più d'accordo. Davvero fastidioso – Erlend