岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

taint機構を生かしたRailsプラグイン

Rails のアプリケーションで DB や HTTP リクエストから取ってきた文字列を rhtml で出力するときに h メソッドなどでエスケープしないとエラーを出すというプラグインを作ってみました。

http://d.hatena.ne.jp/kstn/20060708/1152345246

taint機構のあるRubyでは、こんなプラグインも作りやすいんでしょうね。

以前、この日記に:

ひるがえってRailsの場合どうかと考えると、素のPHPよりは確かにだいぶましなんだろうけど、テンプレート中の「h」を誤って消してXSS発生、なんてこともちょっとはあるんじゃないかな?そんなもの、消した人が悪いに決まってるんだけど、そんな細かいところまで含めてケアしているフレームワークがあれば良いなあ、と思いました。知らないだけかな。

まつもとさんからレスポンスが! - 岩本隆史の日記帳

と書きましたが、そのものズバリがあったということになります。

ちなみに「Webアプリケーションセキュリティフォーラム - Journal InTime(2007-07-05)」のスライドで、上記プラグイン(Safe ERB)のデータアクセス版ともいうべき「SafeRecord」が紹介されています。というか、このスライドでSafe ERBを知ったんですが。

Rubyがますます輝いてみえる今日この頃です。