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
Freigeben: 2024-12-20 04:20:12
Original
857 Leute haben es durchsucht

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;
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage