我想在我的 Rails 应用程序中使用一些“命名空间”自定义标签(使用 radius gem 开发)。我想使用 sanitize gem 来防止 xss 攻击,但是没有描述如何在 sanitize 中配置命名空间。有没有可能的方法?
问问题
457 次
2 回答
1
sanitize gem 不支持命名空间。简要看一下 sanitize 的代码,清理元素的转换类和它实际解析 html 的方式都没有给 Nokogiri(xml 解析器底层 sanitize)提供它需要能够识别和处理命名空间的信息),因此无需修改 sanitize支持这个,不可能的。
您将能够在 sanitize 中看到没有前缀命名空间的标签,因此如果它们都具有不与任何其他标签冲突的自定义名称,您可以指定这些,但使用当前编写的 sanitize,您可以'不过滤特定于命名空间的标签。
于 2011-04-20T10:22:51.013 回答
0
据我所知,sanitize gem 只是从控制器中的参数中过滤 javascript 和 HTML。也许自从我上次看以来它已经被延长了。
不,您不能命名大多数宝石。有一些技巧可以用猴子补丁在它们周围放置包装器。如果需要,我会谷歌“ruby 命名空间冲突”,你会得到这样的结果如何解决 Rails 模型命名空间冲突
于 2011-01-23T22:36:56.303 回答