Comment rediriger la page https en php Stack Overflow

Si vous leur permettez de publier à /login.php sur HTTP simple et rediriger vers HTTPS, vous battez le but d'utiliser HTTPS car les informations de connexion a déjà été envoyé en clair sur Internet.







Ce que vous pouvez faire pour empêcher l'utilisateur de modifier l'URL, est faire de sorte que la page de connexion rejette la connexion si elle est pas sur HTTPS.

Ce que j'utilise pour vérifier l'utilisation du protocole HTTPS est le suivant:

Si vous utilisez votre serveur sécurisé sur le port par défaut de 443, vous pouvez également vérifier si tel est le port, mais PHP définit la valeur $ _SERVER [ « HTTPS »] à la non-vide si SSL est utilisé si je le ferais vérifier la présence de ce pour les meilleures pratiques.

Si l'utilisateur est ainsi inclus pour modifier manuellement les https à http et que vous voulez envoyer leurs informations sur le texte brut, il n'y a rien que vous pouvez faire pour les arrêter, mais si vous interdisez de connexion sur HTTP, de sorte que même les informations correctes ne les connecter, vous pouvez les forcer à utiliser https en en faisant la seule chose qui fonctionne.







En supposant que votre page avec le formulaire de connexion est généré par index.php. vous devez mettre le code exemple pour HTTP redirection HTTPS dans index.php. Cela garantira que lorsque l'utilisateur remplit le formulaire et le soumet, il est soumis à /login.php via HTTPS et non HTTP.

Mettre ce contrôle à l'intérieur login.php est futile car le temps login.php reçoit la demande et tente de rediriger vers l'URL HTTPS correspondant, bien, les informations d'identification ont déjà été soumis à ce qui est en clair ce que vous devriez vouloir éviter.

L'observation que vous voyez $ _SERVER [ « SERVER_PORT »] à 80 et $ _SERVER [ « HTTPS »] à régler pas lorsque vous mettez le contrôle à l'intérieur login.php est une preuve supplémentaire du fait que les informations d'identification sont se connecter soumis à via HTTP et donc les informations de connexion atteignent votre serveur à partir du client non crypté. Cela doit être évité en suivant ce que je disais dans le premier paragraphe de cette réponse.

BTW, je ne voudrais pas utiliser PHP pour faire ce genre de redirection. Ces sont très commodément redirections gérées par mod_rewrite Apache httpd.

Ta Réponse







Articles Liés