ホームページ  >  記事  >  バックエンド開発  >  ## PHP 8.1 以降でデータベース接続エラーを処理する方法: ベスト プラクティスとセキュリティに関する考慮事項

## PHP 8.1 以降でデータベース接続エラーを処理する方法: ベスト プラクティスとセキュリティに関する考慮事項

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 02:07:27686ブラウズ

##  How to Handle Database Connection Errors in PHP 8.1 and Beyond: Best Practices and Security Considerations

mysqli_connect が失敗した場合のカスタム エラー メッセージ

データベースに接続しようとすると、mysqli_connect は言語によって生成されたエラー メッセージを表示していましたが、この動作は PHP 8.1 で変更されました。現在、mysqli はエラー時に例外をスローするため、手動エラー処理の必要がなくなります。

カスタム エラー メッセージは逆効果です

接続エラーにカスタム エラー メッセージを使用することは推奨されません。エラーの検出と処理は、手動の if チェックを必要とせず、mysqli または PDO によって自動的に処理される必要があります。カスタム エラー メッセージを表示すると、ユーザーのセキュリティが侵害され、不必要な詳細が表示される可能性があります。

エラー処理のベスト プラクティス

エラー メッセージをユーザーから隠すには、display_errors php.ini または PHP コードで設定オプションを 0 に設定します:

<code class="php">ini_set('display_errors', 0);</code>
さらに、エラー ハンドラーを実装して、回復不可能なエラーの一般的なエラー ページを表示します:

<code class="php">set_exception_handler(function ($e)
{
    error_log($e);
    http_response_code(500);
    if (ini_get('display_errors')) {
        echo $e;
    } else {
        echo '<h1>500 Internal Server Error</h1><br>An internal server error has been occurred.<br>Please try again later.';
    }
});</code>

HTTP 500 エラー

サーバー エラーによりページがコンテンツを配信できない場合、HTTP 500 コードで応答する必要があります。これは適切なエラー処理に必要であり、抑制すべきものではありません。

特定のシナリオの接続エラーのキャッチ

場合によっては、キャッチする必要がある場合があります。接続エラーを明示的に示します。これは、処理シナリオがエラー報告を超える場合、接続試行の周囲に try..catch ブロックを使用することで実現できます。

接続資格情報の非表示

機密データベースのパスワードを防止するにはスタック トレースで公開されないようにするには、PHP をバージョン 8.2 以降に更新して、そのような情報を非表示にします。

以上が## PHP 8.1 以降でデータベース接続エラーを処理する方法: ベスト プラクティスとセキュリティに関する考慮事項の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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