Estoy construyendo una aplicación Backbone.js y me pregunto cuál es la mejor manera de tratar con XSS respectivamente el escape de HTML cuando se usa Backbone.js.Backbone.js y XSS/HTML escapándose
En el documento básico Todos example application de la documentación oficial de Backbone.js, no se escaparon los datos. Dado que estos datos se utilizan en la plantilla para hacer que las entradas de tareas pendientes, es posible ejecutar código Javascript introduciendo el siguiente texto (pueden ser reproducidos en el siguiente enlace):
"><script>alert('xss');</script>
Cuando se utiliza un servidor REST como back-end de almacenamiento, este XSS es persistente para cada usuario.
¿Cómo resuelves este problema?
Mi idea es escapar de los datos en el servidor, por lo que los datos devueltos luego son seguros para ser utilizados en una plantilla. ¿Debo utilizar siempre wait: true
para asegurarme de que no se procesen datos sin protección? Y para editar, agregue otro atributo con los datos no guardados, que luego se pueden usar para rellenar el campo de texto usando .val()
?
¿O no hace nada de esto y escapa de los datos en el cliente, antes de representar la plantilla?
¿Qué pasa con la función de escape para los modelos? http://backbonejs.org/#Model-escape – eveevans
Parece que el ejemplo ya se ha corregido. –