【问题标题】:sanitize and namespace清理和命名空间
【发布时间】:2011-06-14 04:40:09
【问题描述】:

我想在我的 rails 应用程序中使用一些“命名空间”自定义标签(使用 radius gem 开发)。我想使用 sanitize gem 来防止 xss 攻击,但是没有描述如何在 sanitize 中配置命名空间。有什么办法吗?

【问题讨论】:

    标签: ruby-on-rails ruby xss sanitization sanitize


    【解决方案1】:

    sanitize gem 不支持命名空间。简单地看一下 sanitize 的代码,清理元素的转换类和它实际解析 html 的方式都没有给 Nokogiri(xml 解析器底层 sanitize)提供它需要能够识别和处理命名空间的信息),因此无需修改 sanitize支持这个,这不可能。

    您将能够在 sanitize 中看到没有前缀命名空间的标签,因此,如果它们都具有不与任何其他标签冲突的自定义名称,您可以指定这些名称,但使用当前编写的 sanitize ,您无法过滤特定于命名空间的标签。

    【讨论】:

      【解决方案2】:

      据我所知,sanitize gem 只是从控制器中的参数中过滤 javascript 和 HTML。也许自从我上次查看以来它已被延长。

      不,您不能命名大多数宝石。有一些技巧可以用猴子补丁在它们周围放置包装器。如果需要,我会用谷歌搜索“ruby 命名空间冲突”,你会得到类似How to resolve Rails model namespace collision

      【讨论】:

      • 我想你不明白我的意思。真的 - sanitize 用于过滤 Rails 应用程序中的输入文本(从视图到控制器),但不幸的是 - 无法使用自定义标签,如
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 2011-10-09
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      相关资源
      最近更新 更多