【问题标题】:Sanitize helper in Rails在 Rails 中清理助手
【发布时间】:2015-09-13 18:50:47
【问题描述】:

你能解释一下吗

2.1.3 :015 > ActionController::Base.helpers.sanitize '<b>test</b>'
 => "<b>test</b>" 

结果并不像文档http://apidock.com/rails/ActionView/Helpers/SanitizeHelper/sanitize中所说的那样

但这是正确的

2.1.3 :017 > ActionController::Base.helpers.sanitize('<b>test</b>', tags: [])
 => "test"

我的配置中没有 WhiteListSanitizer。也许 Rails 默认有任何地方 WhiteListSanitizer?我怎样才能找到它?或者,也许我有什么不明白?

【问题讨论】:

    标签: ruby-on-rails ruby sanitize


    【解决方案1】:

    实际上,它的工作方式与您预期的完全一样。 sanitize 帮助程序旨在保留良性 html 标签并删除可能有害的标签。

    ActionController::Base.helpers.sanitize("<b>test</b>")
    => "<b>test</b>" 
    
    ActionController::Base.helpers.sanitize("<script>test</script>")
    => "" 
    

    您可以在config/application.rb 中调整 sanitize 方法的全局设置。

    config.action_view.sanitized_allowed_tags = ['b']
    

    然后你得到:

    ActionController::Base.helpers.sanitize("<b>test</b>")
    => "test" 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-15
      • 2011-10-28
      • 2011-03-15
      • 2016-07-22
      • 1970-01-01
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多