Rails sanitize 的一个问题怎么破

tim_lang · March 13, 2015 · Last by hging replied at March 13, 2015 · 1890 hits
ActionController::Base.helpers.sanitize("<span>dsdsdsd</span>ddsdsdsd  1 > 2 ")
#return <span>dsdsdsd</span>ddsdsdsd  1 &gt; 2

但是

ActionController::Base.helpers.sanitize("<span>dsdsdsd</span>ddsdsdsd  1 < 2 ")
#return  "<span>dsdsdsd</span>ddsdsdsd  1 " 

后面的 < 2 就没了,也就是没能转换成 &l t; 2

测试了下 angularjs 里面的 ng-sanitize 和 rails 的 sanitize helper 行为一样。

现在的问题是已经不可能改数据库中的原数据了,比如 保存进数据库时就将<>"等符号给 escape 掉。 如何使得 santize 得到预期的结果,而不丢字符串。

class Application < Rails::Application
  config.after_initialize do
    ActionView::Base.sanitized_allowed_tags.delete 'div'
  end
end

这样?不知道有没有效果。

You need to Sign in before reply, if you don't have an account, please Sign up first.