防止铁轨中的Redcarpet宝石注入攻击

时间:2015-06-13 17:42:06

标签: ruby-on-rails redcarpet

我有一个文本区域,允许用户输入他们汽车的描述。

它保存为:text,当被调用时,我将通过ApplicationHelper渲染,如下所示:

module ApplicationHelper
    def markdown(text)
        renderer = Redcarpet::Render::HTML
        @engine = Redcarpet::Markdown.new(renderer, 
            hard_wrap: true,
            filter_html: true,
            autolink: true,
            no_intra_emphasis: true
        )
        @engine.render(text)
    end
end

作为偏执狂,我试着在我的textarea中输入类似的内容。

Markdown.

__Nice.__

<%= @car %>
<script>
  alert('damn');
</script>

虽然<%= @car %>没有解析ruby代码,但脚本确实已执行。

在我看来:

<%= markdown(@car.description).html_safe %>

我想知道这是用redcarpet处理的正确方法;这种机制是否容易受到任何攻击,我该如何防止它?

最佳

0 个答案:

没有答案