【发布时间】:2011-09-25 12:13:28
【问题描述】:
我使用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 显示为 text,这不是所需的行为。
我需要渲染 html 并同时保护自己免受 xss 的侵害。我该怎么办?
【问题讨论】:
标签: ruby-on-rails-3 security xss