gpt4 book ai didi

ruby-on-rails - 在 Rails 中转义 HTML

转载 作者:行者123 更新时间:2023-12-03 10:37:44 26 4
gpt4 key购买 nike

转义 HTML 以防止 Rails 应用程序中的 XSS 漏洞的推荐方法是什么?

您是否应该允许用户将任何文本放入数据库但在显示时将其转义?您是否应该添加 before_save 过滤器来转义输入?

最佳答案

解决这个问题有三种基本方法。

  • 使用 h()在你看来。这里的缺点是如果你忘记了,你会得到 pwnd。
  • 使用在保存时转义内容的插件。我的插件 xss_terminate做这个。那你就不用h()在您看来(主要是)。还有其他工作在 Controller 级别。这里的缺点是 (a) 如果转义代码中存在错误,您的数据库中可能会出现 XSS; (b) 在某些极端情况下,您仍然希望使用 h() .
  • 使用在显示时转义内容的插件。 CrossSiteSniper可能是其中最著名的。这会为您的属性设置别名,以便在您调用 foo.name 时它会转义内容。如果您需要未转义的内容,有一种解决方法。我喜欢这个插件,但我并不想一开始就让 XSS 进入我的数据库...

  • 然后有一些混合方法。

    没有理由不能同时使用 xss_terminate 和 CrossSiteSniper。

    还有一个名为 Erubis 的 ERb 实现可以配置为任何调用,如 <%= foo.name %>被转义——相当于 <%= h(foo.name) %> .不幸的是,Erubis 似乎总是落后于 Rails,因此使用它会减慢您的速度。

    如果您想阅读更多内容,我写了一篇关于 using xss_terminate 的博客文章(Xavor 友情链接) .

    关于ruby-on-rails - 在 Rails 中转义 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/698700/

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