Chr*_*ini 5 security xss ruby-on-rails-3
我使用jQuery Markitup允许用户输入html ...所以他们可以输入如下内容:
<h1>Foo</h1>
<p>Foobar</p>
Run Code Online (Sandbox Code Playgroud)
但是,我正在观看http://railscasts.com/episodes/204-xss-protection-in-rails-3并决定在输入中尝试这段代码:
<script>alert('test');</script>
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,当我提交表格并刷新页面时,警报框出来了.这是一个安全风险!
这就是我的看法:
<div><%= comment.description.html_safe %></div>
Run Code Online (Sandbox Code Playgroud)
上面呈现任何html,但也容易出现xss.所以我尝试过:
<div><%= html_safe(comment.description).html_safe %></div>
Run Code Online (Sandbox Code Playgroud)
但上面没有渲染任何HTML.它实际上将html显示为文本,这不是所需的行为.
我需要渲染html,同时保护自己不受xss的影响.我该怎么做?
尝试
<%= sanitize(comment.description) %>
Run Code Online (Sandbox Code Playgroud)
更新:
要删除所有标签,请使用 strip_tags