Html没有被过滤

时间:2011-06-03 21:09:59

标签: ruby-on-rails ruby security ruby-on-rails-3

我有这个表单用于创建主题(aka标签):

<%= simple_form_for @video, :url => {:action => "topic_update"}, :html => {:id => "topic_form"}, :remote => true do |f| %>
  <div class="topic_field_input">
      <%= f.input :topic_names, :class => "topic_field", :label => false, :placeholder => "Type a topic (enter to create new one)" %>
  </div>
<% end %>

我将其创建为虚拟属性:

attr_accessor :topic_names
after_save :assign_topics

def assign_topics
    self.topics << @topic_names.map do |name|
      Topic.find_or_create_by_name(name.split(' ').map {|w| w.capitalize }.join(' '))
    end
  end
end

我认为它不会过滤html因为我传递给find_or_create_by_name

如何修改代码以过滤html?

1 个答案:

答案 0 :(得分:0)

您可以在setter或getter中强制使用ERB::Util.h(@topic_names)进行转义。