Im usando jQuery Markitup para permitir a los usuarios introducir html ... Para que puedan materia de entrada como:¿Cómo escapar html?
<h1>Foo</h1>
<p>Foobar</p>
Sin embargo, yo estaba viendo http://railscasts.com/episodes/204-xss-protection-in-rails-3 y decidimos probar este pedazo de código en la entrada:
<script>alert('test');</script>
Para mi asombro, cuando envié el formulario y actualicé la página, salió el cuadro de alerta. ¡Este es un riesgo de seguridad!
Esto es lo que tengo en mi opinión:
<div><%= comment.description.html_safe %></div>
Lo anterior muestra cualquier html, sino que también es propenso a XSS. Así que probé:
<div><%= html_safe(comment.description).html_safe %></div>
Pero lo anterior no representa ningún html. De hecho, muestra el html como , texto, que no es el comportamiento deseado.
Necesito renderizar el html y al mismo tiempo protegerme de xss. ¿Cómo hago esto?
Sí desinfectar representa HTML, y no ejecuta la alerta de la JS. Interesante. Pero, ¿qué implicaciones tiene esto? Estaba viendo http://railscasts.com/episodes/27-cross-site-scripting y Ryan B menciona que "no es tan completo, ya que no escapa a todas las etiquetas html, que no es tan segura". .. –