Railsではfilter_parameters
という設定ができます.
調べれば具体的にどういう処理をしてくれているのか、他の方々が使い方を書いてくれますが、
今回はそれらについて誤解がないように書いておきます.
実行環境
この記事は、以下のバージョンを使って書いています.
- Ruby ... 2.4.1
- Ruby on Rails ... 5.1.4
リクエストパラメータをフィルターする
filter_parametersに指定された条件にマッチした場合は、パラメータの値を[FILTERED]としてログに出力します.
独自でフィルターしたい値があれば積極的に使っていくと良いでしょう.
パスワード、決済関連の情報などといったパラメータに関しては必ず設定する癖を設定しておくのが望ましいです.
SQLの値をフィルターする
SQLのログを出さないようにすることもできますが、それは最終手段に残しておきましょう.
調査時にログを解析しようとしてもSQLがなく困るケースもありますし、理由がない限りは出力させないようにするのはやめておくのが良いです.
最後に
filter_parametersにフィルターしたい値を設定しておけば大丈夫という考えはリクエストパラメータだけにしておきましょう.
それ以外のログ(SQLなど)では出力されてしまうので、それを見越して設計・開発を行うようにしていきましょう.
決済関連の情報など、内部で不正利用されたら事件ですからね.