0

Sanitize gem と HTMLEntities の組み合わせを使用して、ユーザー入力 HTML のクリーンアップを行っていました。Sanitize gem は Hpricot を使用していましたが、今では Nokogiri を使用しています。Hpricot をアプリから削除する必要があります。

ここに 2 つのテスト文字列があり、それぞれの後に期待する出力が続きます。

テスト文字列 1:

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

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

2 番目のテスト文字列 (わずかに異なるパス):

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

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

これはあなたが解決したものですか?どのようなツールを使用しましたか?

4

1 に答える 1

2

Loofah gem を試してみてください:

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

Loofah は何らかの理由で 2 番目の例の Unicode 文字を処理していませんが、Loofah で Github Issue を提出していただければ、喜んで調査させていただきます (完全開示: 私は Loofah の作成者であり、のこぎり)。

その他のリンク:

于 2012-07-13T18:48:35.087 に答える