Maison > développement back-end > tutoriel php > Comment puis-je déterminer de manière fiable l'état de la connexion HTTPS en PHP ?

Comment puis-je déterminer de manière fiable l'état de la connexion HTTPS en PHP ?

Susan Sarandon
Libérer: 2024-12-03 19:17:13
original
854 Les gens l'ont consulté

How Can I Reliably Determine HTTPS Connection Status in PHP?

Détermination de l'état de la connexion HTTPS au-delà de $_SERVER['HTTPS']

De nombreux didacticiels en ligne suggèrent de vérifier $_SERVER['HTTPS'] pour vérifier si une connexion au serveur est sécurisée via HTTPS. Cependant, $_SERVER['HTTPS'] peut ne pas être défini sur certains serveurs, ce qui entraîne des erreurs.

Variable alternative pour la détection HTTPS

Pour surmonter ce problème, envisagez en utilisant la fonction isSecure(), qui fournit une indication fiable de l'état de la connexion HTTPS même lorsque $_SERVER['HTTPS'] est undefined :

function isSecure() {
  return
    (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
    || $_SERVER['SERVER_PORT'] == 443;
}
Copier après la connexion

Compatibilité et considérations

  • Compatibilité IIS :Cette fonction fonctionne avec les serveurs IIS.
  • **Indéfini $_SERVER['HTTPS'] :** Malgré la documentation indiquant que $_SERVER['HTTPS'] doit être défini pour les connexions HTTPS, il peut ne pas être défini avec certaines configurations.
  • Serveurs Apache 1.x : Les serveurs Apache 1.x peuvent ne pas définir $_SERVER ['HTTPS'] pour des connexions sécurisées.
  • Vérification du port 443 : La convention suggère que les connexions effectués sur le port 443 utilisent généralement des sockets sécurisés.

Load Balancer et HTTP_X_FORWARDED_PROTO

Notez que cette fonction ne teste pas la connexion entre le client et une charge potentielle balancier. Pour vérifier cela, l'en-tête HTTP_X_FORWARDED_PROTO peut être utilisé, mais sa mise en œuvre est plus complexe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal