ホームページ  >  記事  >  バックエンド開発  >  PHP で返されるエラー メッセージをシールドする方法のまとめ

PHP で返されるエラー メッセージをシールドする方法のまとめ

PHPz
PHPzオリジナル
2023-04-03 11:15:261316ブラウズ

PHP 開発のプロセスでは、プログラム実行エラーが必ず発生します。現時点では、システムのデフォルトのエラー メッセージが攻撃者にチャンスを与える可能性があります。したがって、実際の開発プロセスでは、Web サイトのセキュリティを強化するためにエラー情報をシールドする必要があります。この記事では、PHP から返されるエラー情報をシールドする方法を紹介し、参考にしていただけます。

  1. エラー報告をオフにする

PHP には、エラー報告をオフにするメソッドが用意されています。つまり、次のコード行をコードに追加します。 ##このメソッドを使用すると、PHP は構文エラーや実行時エラーなどのエラー メッセージを表示しません。この方法はシンプルで使いやすいですが、開発者が時間内にエラーを見つけて修正することができないため、正式に公開された Web サイトにのみ適しています。

エラー情報をログ ファイルに保存する
  1. エラー情報をサーバー側のログ ファイルに保存するには、このメソッドを使用します。コードは次のとおりです:
error_reporting(0);

開発プロセス中、この方法を使用すると、エラーが発生したときにログ ファイルを表示してエラーの原因をすばやく特定し、修正できます。

エラー情報をカスタム ページにリダイレクトする
  1. このメソッドを使用して、エラー情報をカスタム ページにリダイレクトし、シールドを実現します。コードは次のとおりです。
ini_set('log_errors', 'On'); //开启日志记录
ini_set('error_log', '/var/log/php.error.log'); //将错误信息输出到指定路径的日志文件中

この方法では、エラーが発生しても攻撃者は有益な情報を見ることができないため、Web サイトのセキュリティが向上します。

.htaccess ファイルを使用してエラー メッセージをリダイレクトする
  1. Web サイトで Apache サーバーを使用している場合は、サイト全体のブロックに .htaccess ファイルを使用できます。次のコードは、エラー メッセージをカスタム エラー ページにリダイレクトします:
ini_set('display_errors', 'Off');
ini_set('error_reporting', E_ALL);
ini_set('log_errors', 'On');
ini_set('error_log', '/var/log/php.error.log');

function myErrorHandler($errno, $errstr, $errfile, $errline) {
    header('Location: /error.html'); //将错误信息重定向至自定义错误页面
    exit; //终止脚本的执行
}

set_error_handler('myErrorHandler');

このメソッドは、同時に実行されている複数の PHP プログラムに適しています。上記のコードをルートの .htaccess ファイルに追加するだけです。 Web サイトのディレクトリです。

まとめ

以上、PHPが返すエラーメッセージをシールドする方法を紹介しましたが、開発ニーズに合わせて選択することで柔軟に対応できます。エラー メッセージのブロックは Web サイトのセキュリティを強化するための唯一の方法であり、他のセキュリティ対策に代わるものではないことに注意してください。したがって、開発プロセスでは、他のセキュリティ対策を組み合わせて、Web サイトのセキュリティと信頼性を総合的に向上させる必要があります。

以上がPHP で返されるエラー メッセージをシールドする方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。