/ / Как да избягате от html? - руби-на-релси-3, сигурност, xss

Как да избягате от HTML? - руби-на-релси-3, сигурност, xss

Аз използвам jQuery Markitup за да позволи на потребителите да въвеждат html ... Така че те могат да въведат неща като:

<h1>Foo</h1>
<p>Foobar</p>

Въпреки това, гледах http://railscasts.com/episodes/204-xss-protection-in-rails-3 и реши да опитате това парче код във входа:

<script>alert("test");</script>

За мое учудване, когато изпратих формуляра и освежих страницата, сигналната кутия излезе. Това е риск за сигурността!

Това имам по мое мнение:

<div><%= comment.description.html_safe %></div>

Горното прави всеки html, но също така е склонен към xss. Така че аз се опитах:

<div><%= html_safe(comment.description).html_safe %></div>

Но горното не прави никакъв html. Той всъщност показва html като текст, което не е желаното поведение.

Трябва да направя html и в същото време да се защитя от xss. Как да направя това?

Отговори:

0 за отговор № 1

Опитвам

<%= sanitize(comment.description) %>

Update:

За да премахнете всички маркери използвайте strip_tags