Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann man zuverlässig nach einer HTTPS-Verbindung suchen, wenn $_SERVER['HTTPS'] nicht definiert ist?
Die Überprüfung von $_SERVER['HTTPS'] bleibt ein gängiger Ansatz zur Überprüfung von HTTPS-Verbindungen. Allerdings können undefinierte Werte in dieser Variable auf bestimmten Servern zu Fehlern führen. Um dieses Problem zu beheben, steht eine zuverlässigere alternative Methode zur Verfügung.
Dieses Code-Snippet stellt sicher, dass der HTTPS-Status unabhängig von der Verfügbarkeit von $_SERVER['HTTPS'] ermittelt werden kann:
function isSecure() { return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443; }
Der Code verwendet zwei Bedingungen, um HTTPS zu bestimmen Status:
Diese Methode berücksichtigt die potenziellen Probleme mit IIS- und Apache 1.x-Servern, bei denen $_SERVER['HTTPS'] möglicherweise nicht einmal bei sicheren Verbindungen festgelegt wird.
Dieser Code ist mit IIS- und Apache-Servern kompatibel. Darüber hinaus ist es wichtig zu beachten, dass die Verbindung zwischen dem Load Balancer und dem Server überprüft wird. Für Verbindungen zwischen dem Client und dem Load Balancer kann der Header HTTP_X_FORWARDED_PROTO verwendet werden, erfordert jedoch eine komplexere Implementierung.
Das obige ist der detaillierte Inhalt vonWie kann man zuverlässig nach einer HTTPS-Verbindung suchen, wenn $_SERVER['HTTPS'] nicht definiert ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!