IT-Q

ログに出してはいけない情報は何ですか。

パスワード、APIキー、セッショントークン、カード番号です。危険なのはデバッグ目的でリクエスト全体を出す実装で、ログイン処理を通った瞬間に平文パスワードが残ります。

面接官が見ているのはログが漏洩経路になる認識があるか。

これは「本番障害への気づき方として妥当なのはどれですか。」への追撃質問です。

よくある答えと、面談でどう見られるか

  • パスワード・APIキー・トークン・カード番号。個人情報も最小限にする
    危険なのは、デバッグ目的でリクエスト全体をログに出す実装です。ログイン処理で使われた瞬間に平文パスワードが残ります。
  • エラーのスタックトレース
    調査に必要なので出します。外部に見せないことが重要です。
  • リクエストのURL
    通常は出します。ただしクエリ文字列にトークンが乗る設計だと危険なので、その場合は要注意です。
  • 実行時間やメモリ使用量
    むしろ積極的に出したい情報です。

面接官は何を見ているか

  • パスワードやトークンを挙げた
  • 個人情報に触れた
  • リクエスト全体をそのまま出す危険に触れた

模範解答

パスワード、APIキー、セッショントークン、クレジットカード番号は出しません。個人情報も、必要最小限にするか識別子だけにします。危険なのは、デバッグ目的でリクエスト全体をログに出す実装です。普段は問題なくても、ログイン処理で使われた瞬間に平文パスワードが残ります。

よく混同されますが、Laravel の dontFlash はログの話ではありません。バリデーション失敗でリダイレクトするとき、入力値をセッションに一時保存して画面に戻す仕組みがあり、そこから除外する項目の指定です。既定でパスワード系が除外されています。つまりログ出力には一切効かないので、自分で Log::info() を書いた時点で何を残すかは完全に自分の責任になります。