2007/03/24

logに残されるパスワードをフィルタリングする



Railsアプリを作成していて、動作の確認等で非常に重要なログファイルですが、このログには様々な情報が残されます。

例えばユーザ登録画面等で送信したパラメータもログに残されます。

ユーザ登録の際は、パスワードを入力したりしますので、パスワードがそのまま平文で残されるのはちょいとまずいものです。


Processing UserController#signup (for 192.168.0.25 at 2007-03-24 10:41:08) [POST]
Session ID: 42d8820cd16b8a672b86f737d8d6b4e8
Parameters: {"user"=>{"password_confirmation"=>"testpassword", "lastname"=>"Tarou", "firstname"=>"Test", "login"=>"tester", "password"=>"testpassword", "email"=>"test@test.com"}, "commit"=>"Signup", "action"=>"signup", "controller"=>"admin/user"}


そこで、以下のようにするとログに残されるパスワードをフィルタリングすることができます。

filter_parameter_logging(*filter_words) {|key, value| ...}


class ApplicationController < ActionController::Base
filter_parameter_logging "password"
end



すばらしい!


Processing UserController#signup (for 192.168.0.25 at 2007-03-24 10:43:50) [POST]
Session ID: 42d8820cd16b8a672b86f737d8d6b4e8
Parameters: {"user"=>{"password_confirmation"=>"[FILTERED]", "firstname"=>"Test", "lastname"=>"Tarou", "password"=>"[FILTERED]", "login"=>"tester2", "email"=>"test2@test.com"}, "commit"=>"Signup", "action"=>"signup", "controller"=>"admin/user"}

Filtering Sensitive Logs


0 件のコメント: