私は Rails アプリケーションに取り組んでおり、CSS または JavaScript のブロックを削除する最良の方法を知りたいです。
<style>
...
</style>
-or-
<script>
...
</script>
私はstrip_tagsヘルパーを使用してほとんどの HTML を処理していますが、コンテンツにインライン CSS が含まれていると大量の CSS が残ります。ありがとう
私は Rails アプリケーションに取り組んでおり、CSS または JavaScript のブロックを削除する最良の方法を知りたいです。
<style>
...
</style>
-or-
<script>
...
</script>
私はstrip_tagsヘルパーを使用してほとんどの HTML を処理していますが、コンテンツにインライン CSS が含まれていると大量の CSS が残ります。ありがとう
Nokogiri ライブラリを使用してみてください:
require 'nokogiri'
str = " ... " # some html from user
doc = Nokogiri::HTML(str)
doc.css("style,script").remove # remove all tags with content
new_string = doc.to_s
Nokogiri はもっと多くのことができますが、これはあなたが質問で求めたものです :-)
アプリケーションにユーザー提供の CSS が必要な場合は、 http: //github.com/courtenay/css_file_sanitize/tree/masterも試してみてください。
これを行うための推奨される方法は、サニタイズメソッドを使用することです。strip_tags メソッドは多少制限があり、安全性が低くなります。
[strip_tags] コメントを含むすべての HTML タグを html から取り除きます。これは html-scanner トークナイザーを使用するため、その HTML 解析機能は html-scanner の機能によって制限されます。
サニタイズを使用すると、はるかに安全になります。最初に許可するタグのホワイト リストを作成するだけです。