Wie umleiten Seite https in PHP-Stack-Überlauf

Wenn Sie sie zu schreiben erlauben über einfaches HTTP /login.php und dann zu HTTPS umleiten, besiegen Sie den Zweck HTTPS verwenden, da die Login-Daten bereits im Klartext über das Internet versendet.

Was Sie tun können, der Benutzer die Änderung der URL zu verhindern, ist es so, die Login-Seite die Login verwirft, wenn sie nicht über HTTPS ist.

Was ich für die Verwendung von HTTPS zu überprüfen, ist die folgende:

Wenn Sie Ihren sicheren Server auf dem Standard-Port 443 ausgeführt wird, dann können Sie auch sehen, prüfen, ob, dass die Port, aber PHP setzt den $ _SERVER [ ‚HTTPS‘] Wert nicht leer ist, wenn SSL verwendet wird, so würde ich überprüfen auf das Vorhandensein, dass für die beste Praxis.

Wenn der Benutzer so eingeschlossen, um manuell die https zu http zu ändern und wollen ihre Informationen über Klartext senden, gibt es nicht alles, was Sie tun können, um sie zu stoppen, aber wenn Sie Login über HTTP nicht zulassen, so dass auch die richtigen Informationen werden nicht log sie in, können Sie sie https verwenden zwingen, kann es das einzige, was, indem sie das funktioniert.

Unter der Annahme, dass Ihre Seite mit dem Login-Formular von index.php erzeugt wird. Sie müssen den Beispielcode für HTTP auf HTTPS-Umleitung in index.php setzen. Dadurch wird sichergestellt, dass, wenn der Benutzer das Formular ausfüllt und legt es, es eingereicht wird über HTTPS und nicht HTTP /login.php.

Setzen Sie dieses Kontroll innerhalb login.php ist zwecklos, weil durch die Zeit login.php die Anfrage bekommt und versucht, die entsprechenden HTTPS-URL, na ja, die Anmeldeinformationen haben zu umleiten bereits, um es als Plain-Text vorgelegt, das ist, was Sie sollten vermeiden wollen.

Die Beobachtung, dass Sie $ _SERVER [ ‚SERVER_PORT‘] siehe 80 zu sein und $ _SERVER [ „HTTPS“], um nicht festgelegt, wenn Sie die Prüfung hineingelegt login.php ein weiterer Beweis für die Tatsache ist, die Anmeldeinformationen werden vorgelegt werden es über HTTP und damit die Anmeldeinformationen erreichen Ihren Server aus dem unverschlüsselten Client. Dies ist zu vermeiden, indem Sie, was ich in dem ersten Absatz dieser Antwort.

BTW, ich würde nicht PHP nutzen diese Art der Umleitung zu tun. Solche Umleitungen sind sehr bequem durch mod_rewrite in Apache HTTPD behandelt.

Deine Antwort

In Verbindung stehende Artikel