ホームページ > バックエンド開発 > PHPチュートリアル > $_SERVER['HTTPS'] が信頼できない場合に HTTPS 接続を確実に検証するにはどうすればよいですか?

$_SERVER['HTTPS'] が信頼できない場合に HTTPS 接続を確実に検証するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-04 05:51:10
オリジナル
307 人が閲覧しました

How Can I Reliably Verify HTTPS Connections When $_SERVER['HTTPS'] Is Unreliable?

$_SERVER['HTTPS'] を超えた HTTPS 接続の検証

$_SERVER['HTTPS'] が未定義のままで、従来の HTTPS チェック方法が妨げられる状況

次の関数は、接続の有無に関係なく、正確な検出を保証します。 $_SERVER['HTTPS'] が存在します:

function isSecure() {
  return
    (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
    || $_SERVER['SERVER_PORT'] == 443;
}
ログイン後にコピー

PHP ドキュメントとユーザー フィードバックに記載されているように、このコードは IIS とシームレスに動作します。

  • $_SERVER['HTTPS' ]: この変数は HTTPS 経由で接続するときに設定されますが、IIS では次のような予期しない値が表示される場合があります。 "off."
  • $_SERVER['SERVER_PORT']: 通常、ポート 443 は安全な接続に関連付けられており、信頼性の高いフォールバック オプションになります。
  • Apache 1.x および潜在的な可能性のあるその他のプラットフォーム構成の問題により $_SERVER['HTTPS'] 変数が省略される場合がありますが、ポート 443 の検証はバックアップとして機能しますcheck.

ロード バランサーがクライアントとサーバーの間を仲介する場合、このコードは主にクライアントとロード バランサーの接続ではなく、ロード バランサーとサーバーの間の接続を検査することに注意してください。

以上が$_SERVER['HTTPS'] が信頼できない場合に HTTPS 接続を確実に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート