Estoy usando jQuery Markitup para permitir a los usuarios ingresar html ... Para que puedan ingresar cosas como:
<h1>Foo</h1>
<p>Foobar</p>
Sin embargo, estaba viendo http://railscasts.com/episodes/204-xss-protection-in-rails-3 y decidí probar este pedazo de código en la entrada:
<script>alert("test");</script>
Para mi sorpresa, cuando envié el formulario y actualicé la página, apareció el cuadro de alerta. ¡Esto es un riesgo de seguridad!
Esto es lo que tengo en mi opinión:
<div><%= comment.description.html_safe %></div>
Lo anterior representa cualquier html, pero también es propenso a xss. Así que intenté:
<div><%= html_safe(comment.description).html_safe %></div>
Pero lo anterior no hace ningún html. En realidad 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 para esto?
Respuestas
0 para la respuesta № 1Tratar
<%= sanitize(comment.description) %>
Actualizar:
Para eliminar TODAS las etiquetas usa strip_tags