ホームページ >バックエンド開発 >PHPチュートリアル >PHP で HTTPS 接続ステータスを確実に確認するにはどうすればよいですか?

PHP で HTTPS 接続ステータスを確実に確認するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-03 19:17:13852ブラウズ

How Can I Reliably Determine HTTPS Connection Status in PHP?

$_SERVER['HTTPS'] を超えた HTTPS 接続ステータスの確認

多くのオンライン チュートリアルでは、$_SERVER['HTTPS'] をチェックして確認することを推奨しています。サーバー接続が HTTPS 経由で保護されているかどうか。ただし、特定のサーバーでは $_SERVER['HTTPS'] が定義されていない場合があり、エラーが発生します。

HTTPS 検出の代替変数

この問題を解決するには、次のことを検討してください。 isSecure() 関数を使用します。この関数は、$_SERVER['HTTPS'] が未定義:

function isSecure() {
  return
    (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
    || $_SERVER['SERVER_PORT'] == 443;
}

互換性と考慮事項

  • IIS 互換性: この関数は IIS サーバーで動作します。
  • **未定義 $_SERVER['HTTPS']:** ドキュメントにもかかわらず$_SERVER['HTTPS'] を HTTPS 接続に設定する必要があることを示していますが、特定の構成では定義されていない可能性があります。
  • Apache 1.x サーバー: Apache 1.x サーバーは定義できない場合があります$_SERVER['HTTPS'] 安全な接続用。
  • ポート 443チェック: 慣例では、ポート 443 で行われる接続は通常、セキュア ソケットを使用することを示唆しています。

ロード バランサーと HTTP_X_FORWARDED_PROTO

この関数はテストされないことに注意してください。クライアントと潜在的なロード バランサーの間の接続。これを確認するには、HTTP_X_FORWARDED_PROTO ヘッダーを利用できますが、その実装はより複雑です。

以上がPHP で HTTPS 接続ステータスを確実に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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