Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich die HTTPS-Nutzung zuverlässig erkennen, ohne auf $_SERVER['HTTPS'] angewiesen zu sein?

Wie kann ich die HTTPS-Nutzung zuverlässig erkennen, ohne auf $_SERVER['HTTPS'] angewiesen zu sein?

Barbara Streisand
Barbara StreisandOriginal
2024-12-20 04:20:12859Durchsuche

How Can I Reliably Detect HTTPS Usage Without Relying on $_SERVER['HTTPS']?

Alternative Methode zur Bestimmung der HTTPS-Nutzung ohne $_SERVER['HTTPS']

Traditionelle Ansätze zur Überprüfung von HTTPS-Verbindungen umfassen die Überprüfung des Werts von $ _SERVER['HTTPS']. Bei bestimmten Serverkonfigurationen ist diese Variable jedoch möglicherweise nicht definiert, was zu Fehlern führt.

Lösung

Um dieses Problem zu beheben, bietet die folgende Funktion eine zuverlässige Alternative für Bestimmen von HTTPS-Verbindungen:

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

Kompatibilität und Erläuterung

  • Der Code unterstützt IIS-Konfigurationen, bei denen $_SERVER['HTTPS'] für Nicht-HTTPS-Anfragen auf „Aus“ gesetzt ist.
  • Zusätzlich überprüft er den Server Port (normalerweise 443 für HTTPS-Verbindungen) als Backup, wenn $_SERVER['HTTPS'] undefiniert ist oder ungültig.

Hinweis für Load Balancer

Dieser Code testet nur Verbindungen zwischen dem Server und dem Load Balancer, wenn ein Load Balancer vorhanden ist. Zum Testen von Verbindungen zwischen dem Client und dem Load Balancer sollte der Header HTTP_X_FORWARDED_PROTO verwendet werden, obwohl dieser Ansatz komplizierter ist.

Das obige ist der detaillierte Inhalt vonWie kann ich die HTTPS-Nutzung zuverlässig erkennen, ohne auf $_SERVER['HTTPS'] angewiesen zu sein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn