ログに出してはいけない情報は何ですか。
パスワード、APIキー、セッショントークン、カード番号です。危険なのはデバッグ目的でリクエスト全体を出す実装で、ログイン処理を通った瞬間に平文パスワードが残ります。
面接官が見ているのはログが漏洩経路になる認識があるか。
これは「本番障害への気づき方として妥当なのはどれですか。」への追撃質問です。
よくある答えと、面談でどう見られるか
- パスワード・APIキー・トークン・カード番号。個人情報も最小限にする
危険なのは、デバッグ目的でリクエスト全体をログに出す実装です。ログイン処理で使われた瞬間に平文パスワードが残ります。 - エラーのスタックトレース
調査に必要なので出します。外部に見せないことが重要です。 - リクエストのURL
通常は出します。ただしクエリ文字列にトークンが乗る設計だと危険なので、その場合は要注意です。 - 実行時間やメモリ使用量
むしろ積極的に出したい情報です。
面接官は何を見ているか
- パスワードやトークンを挙げた
- 個人情報に触れた
- リクエスト全体をそのまま出す危険に触れた
模範解答
パスワード、APIキー、セッショントークン、クレジットカード番号は出しません。個人情報も、必要最小限にするか識別子だけにします。危険なのは、デバッグ目的でリクエスト全体をログに出す実装です。普段は問題なくても、ログイン処理で使われた瞬間に平文パスワードが残ります。
よく混同されますが、Laravel の dontFlash はログの話ではありません。バリデーション失敗でリダイレクトするとき、入力値をセッションに一時保存して画面に戻す仕組みがあり、そこから除外する項目の指定です。既定でパスワード系が除外されています。つまりログ出力には一切効かないので、自分で Log::info() を書いた時点で何を残すかは完全に自分の責任になります。