我正在使用 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 的影响。我该怎么做?
最佳答案
尝试
<%= sanitize(comment.description) %>
更新:
要删除所有标签,请使用 strip_tags
关于ruby-on-rails-3 - 如何转义html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545411/