gpt4 book ai didi

ruby-on-rails - Rails3 和安全的 nl2br !

转载 作者:行者123 更新时间:2023-12-03 14:29:39 27 4
gpt4 key购买 nike

我有一个用户可以发表评论的系统。

评论被抓取到一个文本区域中。

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

事实上,我可以做类似的事情
s.gsub(/\n/, '<br />')
但是包含在 rails 中的 xss 保护会转义 br 标签。

所以我可以这样做
s.gsub(/\n/, '<br />').html_safe
但是,所有标签都被接受,甚至脚本......导致了一个很大的安全问题

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

谢谢

编辑:
现在,我已经添加了这个

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

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

最佳答案

正如瑞恩·比格 (Ryan Bigg) 所建议的那样 simple_format是完成这项工作的最佳工具:它“安全”并且比其他解决方案更简洁。

所以对于@var:

<%= simple_format(@var) %>

如果您需要清理文本以去除 HTML 标签,您应该在将其传递给 simple_format 之前执行此操作。

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

关于ruby-on-rails - Rails3 和安全的 nl2br !,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2844358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com