ウェブサービスを作っています。

content_tag とか tag は中身のエスケープはしない

content_tag :h2, '<b>太字</b>'

は、

<h2>&lt;b&gt;太字&lt;/b&gt;</h2>

とかなりません。


第 4 引数の escape は属性のエスケープに関するもので、

content_tag :h2, 'hoge', :style => '<b>太字</b>'

の結果は

<h2 style="&lt;b&gt;太字&lt;/b&gt;">hoge</h2>

になります。


まあよく考えればわかるはずなんですが、ふつうに XSS 可能にしてました。終わってます。
Rails のヘルパーはだいたいエスケープしてくれるから、変な油断をしてました。