/ / ¿Cómo escapar de html? - Ruby-on-Rails-3, seguridad, xss

Cómo escapar html? - ruby-on-rails-3, seguridad, xss

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 № 1

Tratar

<%= sanitize(comment.description) %>

Actualizar:

Para eliminar TODAS las etiquetas usa strip_tags