ruby-on-rails - 来自文本输入的 Ruby on Rails : How can i remove/delete/sanitize script, 样式标签?

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1 sanitize

<%= form_for @post.comments.new do |f| %>
    Name:<%= f.text_field :name %><br/>
    Email:<%= f.text_field  :email %><br/>
    Body:<%= f.text_area :content %><br/>
    <%= submit_tag "Comment" %>
<% end %>

我需要删除/删除/清理 <script>..</script><style>..</style>标签。

其他选项是,如果有任何脚本、样式标签,则输入字段将被视为空。然后评论将不会被保存。

如何删除这些标签和这些标签中的代码?以及如何删除 html 标签和 html 标签中的内容?

最佳答案

我一直在使用 sanitize 来达到这个目的。它一直工作得很好。

向您的应用添加常量:

YourApp::SANITIZE_FILTER = {
  :remove_contents => ['script']
}

然后你可以添加一个辅助方法:

 def sanitize_content(content)
   content = Sanitize.clean(content, YourApp::SANITIZE_FILTER)
 end

关于ruby-on-rails - 来自文本输入的 Ruby on Rails : How can i remove/delete/sanitize script, 样式标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8414133/

相关文章:

ruby-on-rails - 在 ruby 中是否有安全的 Eval 方法?或者更好的方法来做到这一点?

ruby-on-rails - 如何防止书签表中 Rails 中的重复记录?

ruby - 如何以编程方式删除图像的背景,使其在 ruby​​ 中透明?

ruby-on-rails-3 - Heroku Rails 排队 mongoid

javascript - select2-rails gem 不适用于 Rails4

ruby-on-rails - Errno::ENOENT: 没有这样的文件或目录@rb_sysopen -/tmp/

ruby-on-rails - 是否可以使用带有 Active Record 的 SQL 注入(inject)来修改数据库

ruby-on-rails - 在 ruby​​ .gemspec 文件中,如何指定依赖项的多个版本?

Facebooker 和 Rails3 与 OpenGraph

mysql - 如何通过正则表达式从mysql数据库中选择记录