Rails の場合 white list に基づいて3段階、RESTRICTED,BASIC,RELAXED
とサニタイズします。
XOOPSのコアにもこんなサニタイズのクラスが欲しいですね。
# html = Sanitize.clean(対象のhtml文字列, オプションのhash)
require 'rubygems' require 'sanitize' html = '<b><a href="http://foo.com/">foo</a></b> <img src="http://foo.com/bar.jpg" />' Sanitize.clean(html) # => 'foo'
Sanitize.clean(html, Sanitize::Config::RESTRICTED) # => '<b>foo</b>' Sanitize.clean(html, Sanitize::Config::BASIC) # => '<b><a href="http://foo.com/" rel="nofollow">foo</a></b>' Sanitize.clean(html, Sanitize::Config::RELAXED) # => '<b><a href="http://foo.com/">foo</a></b><img src="http://foo.com/bar.jpg" />'
カスタマイズでこんな事も
Sanitize.clean(html, :elements => ['a', 'span'], :attributes => {'a' => ['href', 'title'], 'span' => ['class']}, :protocols => {'a' => {'href' => ['http', 'https', 'mailto']}})
0 件のコメント:
コメントを投稿