当前位置:  开发笔记 > 后端 > 正文

Rails3和安全nl2br!

如何解决《Rails3和安全nl2br!》经验,为你挑选了1个好方法。

我有一个系统供用户发表评论.

评论被抓到一个文本区域.

我的问题是用br标签格式化注释以替换\n

事实上,我可以做那样的事情

s.gsub(/\n/, '
')

但是包含在rails中的xss保护逃脱了br标签.

所以我能做到这一点

s.gsub(/\n/, '
').html_safe

但是,所有标签都被接受甚至脚本....导致一个很大的安全问题

所以我的问题是:如何安全地使用br格式化文本?

谢谢

编辑:目前,我已经添加了这个

  def sanitaze
    self.gsub(/(<.*?>)/, '')
  end

  def nl2br
    self.sanitaze.gsub(/\n/, '
').html_safe end

Jim.. 55

正如Ryan Bigg所说,这simple_format是工作的最佳工具:它比其他解决方案更安全,更整洁.

所以@var:

<%= simple_format(@var) %>

如果您需要清理文本以删除HTML标记,则应将其传递给之前执行此操作simple_format

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format



1> Jim..:

正如Ryan Bigg所说,这simple_format是工作的最佳工具:它比其他解决方案更安全,更整洁.

所以@var:

<%= simple_format(@var) %>

如果您需要清理文本以删除HTML标记,则应将其传递给之前执行此操作simple_format

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有