Mi javascript lee datos de una cadena de consulta y los coloca en un cuadro de texto usando jQuery.val()
.Javascript/jQuery XSS lectura potencial de cadenas de consulta
Esto funciona bien, pero me pregunto si esto es seguro contra los ataques XSS.
Diga la cadena de consulta parecía ...
site.com?q="javascript:alert(document.cookie)
cual sería efectivamente hacer:
jQuery.val('"javascript:alert(document.cookie)')
Por lo que he probado en IE8/firefox Esto establece el valor de entrada como se ve y no hace la inyección real.
Si me quedo esta función durante la primera cadena:
function htmlEncode(str) {
return str.replace(/</g, '<').replace(/>/g, '>').replace(/'/g, ''').replace(/"/g, '"');
}
A continuación, literalmente, ver "javascript:alert(document.cookie)
en el valor de entrada que no es lo que quiero.
Uso de jQuery 1.5.2 Supongo que mi pregunta es si jQuery.val()
maneja las entidades HTML por usted y, por lo tanto, se considera seguro?
@fire - Después de publicar la respuesta anterior, pensé en algo más que podría ser útil.Aunque ya ha aceptado mi respuesta original, decidí publicar el material adicional de todos modos, porque creo que puede responder a una pregunta más profunda que subyace a la que usted solicitó. ¡¡Buena suerte manteniendo a raya a los piratas informáticos !! –