清理/清理HTML,但保留松散的HTML字符与Ruby / Rails + Nokogiri + Sanitize(?)

时间:2012-07-13 14:26:00

标签: ruby ruby-on-rails-3 nokogiri hpricot sanitize

我们使用Sanitize gem和HTMLEntities的组合来清理用户输入HTML。 Sanitize宝石使用Hpricot,但现在使用Nokogiri。我需要从应用程序中取出Hpricot。

这是两个测试字符串,每个字符串后跟我期望的输出:

测试字符串1:

"SOME TEXT < '<span style='background-image: url(\"http://evil.ru/webbug.png\")'>MORE' & TEXT!!!</span>"

expected_text = "SOME TEXT < 'MORE' & TEXT!!!"

第二个测试字符串(路径略有不同):

'Support <i>odd</i> chars like " < \' ‽'

expected_text = 'Support <i>odd</i> chars like &quot; &lt; &#39; ‽'

这是你解决了吗?你用了什么工具?

1 个答案:

答案 0 :(得分:2)

您可能想尝试丝瓜络宝石:

Loofah.document("SOME TEXT < '<span style='background-image: url(\"http://evil.ru/webbug.png\")'>MORE' & TEXT!!!</span>").to_html
=> "SOME TEXT MORE' &amp; TEXT!!!" 

由于某种原因,丝瓜不会在第二个例子中处理unicode字符,但如果你在丝瓜络上提交Github问题,我会很乐意调查它(完全披露:我是Loofah和co的作者 - Nokogiri的作者。)

更多链接: