清理和命名空间

时间:2011-01-23 22:04:16

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

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

2 个答案:

答案 0 :(得分:1)

sanitize gem不支持名称空间。简要地看一下清理代码,清理元素的转换类和它实际解析html的方式都没有给Nokogiri(基于清理的xml解析器)提供它能够识别和处理命名空间所需的信息,所以不需要修改清理到支持这一点,这是不可能的。

你可以在sanitize中看到没有prefixed-namespaces的标签,所以如果它们都有不与任何其他标签碰撞的自定义名称,你可以指定那些,但是使用sanitize,因为它是当前写的,您无法过滤特定于命名空间的标记。

答案 1 :(得分:0)

据我所知,sanitize gem只是从控制器中的params过滤javascript和HTML。也许自从我上次看以后它已经延长了。

不,你不能命名大多数宝石。有一些黑客可以用猴子修补将包装物放在它们周围。如果需要,我会谷歌“红宝石名称空间碰撞”,你得到像这样的How to resolve Rails model namespace collision