Rails sanitize 的一个问题怎么破

tim_lang · 2015年03月13日 · 最后由 hging 回复于 2015年03月13日 · 1891 次阅读
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

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

需要 登录 后方可回复, 如果你还没有账号请 注册新账号