safe_recordのメンテナになった

Shugoさんが作ったrailsプラグインの"safe_record"のメンテナになりました.
safe_record rails plugin
初仕事として宣伝などしたいと思います.

safe_recordとは

safe_erbのSQL版というと分かる人は多い?かも知れません.
Railsでアプリケーションを作る際にSQLインジェクションを減らせるような安全なコードを無理矢理書かせるpluginです.

  # raise exception!!
  post = Post.find(:first,
    :conditions => "title = '#{params[:title]}'")

こういったコードだと,もしtitleに
"hoge' or foo ='fuga"
などのデータを入れられた場合ちょっと怖いですよね.
なのでこういうものは例外を出力します.

tainted sql: SELECT * from Post WHERE (title = 'user_data!')

例外が発生したら以下のように書き換えましょう.

  # OK :)
  post = Post.find(:first,
    :conditions => [
      "title = ?",
      params[:title]
    ])

  # Good :)
  post = Post.find_by_title(params[:title])

うむうむ.素晴らしい.
ちなみに標準でdevelopment環境でしか動作しないように設定してあります.
本当はtest環境でも動かしたいんですが,ちょっとそれはおいおい.

有ったら尚良い系のプラグイン

口うるさいおばちゃん的な存在ですか..

install

safe_erbに依存しているので.

  $ ./script/plugin install http://safe-erb.rubyforge.org/svn/plugins/safe_erb/
  $ ./script/plugin install git://github.com/authorNari/safe_record.git

こんな感じで入れて頂ければと.

とりあえず

コードは全部読んだので要望,バグ等あれば連絡ください.