Аз използвам 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