[[セキュリティ指針]]
エラーメッセージの表示方法
説明
エラーメッセージの表示方法といっても大まかには2つある。正常なエラーメッセージと異常なエラーメッセージである。
- 正常なエラーメッセージ
- メッセージユーザ入力の不足な項目を指摘するための、プログラマが意識したエラーメッセージ
- 異常なエラーメッセージ
- PHPのFaitalエラーやnoticeなどのエラーで、本来ユーザに見えてはいけないものを示す。
被害例
- 正常なエラーメッセージ
パスワード入力画面で、ユーザ名が正しくパスワードが違った場合に、「パスワードが間違っています」と表示していたとする。しかしこれには重大な問題がある。なぜなら、攻撃者がユーザ名、パスワードを総当りで調べている場合にそのユーザ名が正しいということを露呈してしまうからだ。エラーメッセージは適切に、しかも、不要な情報を外部に漏らさないことが重要である。
対策
- 正常なエラーメッセージ
- はその語がユーザに必要な情報を与えていてなおかつ不要な情報を与えていないかを精査すること。
- 異常なメッセージ
- set_error_handler関数を使用してハンドリングし自らエラー処理を実装するか、php.iniファイルのerror_logに出力するパスを指定することで対応が可能。
error_reporting (0);や、display_errorをoffにすることは問題発生時にエラーメッセージを参照できないため望ましくない。