Erstellen eines sicheren Anmeldeskripts in PHP und MySQL ohne HTTPS

8

Frage

diesen Beitrag auf WikiHow eine gute Referenz zu Erstellen Sie ein sicheres Login-Skript in PHP und MySQL? Im Abschnitt Warnungen weisen die Autoren darauf hin, dass der Code nur mit HTTPS verwendet werden kann. Ich kann HTTPS nicht verwenden, muss aber ein relativ sicheres Login-Skript in PHP und MySQL implementieren und habe mich daher gefragt, ob das Skript auch für eine HTTP-Verbindung implementiert werden könnte.

Gelöst

Eine Drittanbieterlösung ist die beste Lösung, um ein sicheres Anmeldeskript in PHP und MySQL zu erstellen. Durch die Verwendung eines PHP-Frameworks (z. B. Symfony, uLogin) oder externer Parteien (z. B. Facebook, Google) kann die Notwendigkeit, ein völlig neues funktionierendes Login-Skript und Autorisierung (die Remember-Me -Funktionalität) zu erstellen, vermieden werden . Wenn andere gründlich geforscht und Erfahrungen gesammelt haben, um Login-Funktionalitäten zu erstellen, ist es viel sicherer und einfacher, ihre Arbeit zu nutzen.

    
maikovich 06.04.2014, 11:14
quelle

2 Antworten

7

Obwohl Sie selbst ein Login-System erstellen können, wird dringend empfohlen, dies von externen Partnern für Sie tun zu lassen.

Es braucht viel Erfahrung, um es richtig zu machen, und es wird so oft falsch gemacht.

Obwohl das Tutorial für mich in Ordnung ist, gibt es nur so viele Faktoren zu berücksichtigen, und es scheint auch halb alt zu sein. PHP 5.5 bietet password_hash und password_verify , was ich empfehlen würde, was Ihre Seite vorschlägt.

Also, wenn Sie Ihr eigenes System machen müssen; Überlegen Sie sich, ob Sie die oben genannten Funktionen nutzen möchten. Wenn Sie auf niedrigere PHP-Versionen beschränkt sind, gibt es Backports bis Version 5.3.7 verfügbar .

Wenn Sie nicht haben, um Ihr eigenes System zu erstellen , verwenden Sie externe Parteien (Google, Facebook), um die Anmeldung für Sie zu übernehmen oder zu verwenden eines Frameworks mit Authentifizierung .

Also im Allgemeinen: Versuchen Sie nicht, es selbst zu tun, nutzen Sie, was andere Leute anbieten, welche Jahre Erfahrung darin sind. Es ist unglaublich schwierig, es richtig zu machen.

    
Zarthus 06.04.2014, 11:23
quelle
3

Dieses Skript verschlüsselt das vom Benutzer eingegebene Passwort sicher in seinem Browser und löscht das Klartext-Passwortfeld vor der Übermittlung des Formulars, so dass das Passwort von keinem Dritten gelesen werden kann. Insofern kann das Skript sicher über HTTP verwendet werden.

Der Rest der Daten des Formulars - Name des Benutzers, E-Mail-Adresse usw. - wird jedoch nicht sicher gesendet, so dass ein Drittanbieter (z. B. Mann in der Mitte ) könnte den Benutzer identifizieren, indem er seine (nicht verschlüsselten) persönlich identifizierbaren Informationen liest, die vom Formular gesendet werden. Dies bedeutet nicht nur, dass Ihre Benutzer gefährdet sind, sondern der unsichere Umgang mit den Benutzerdaten kann Ihren Arbeitgeber / Kunden einem rechtlichen Risiko aussetzen, falls die Daten jemals gestohlen werden.

Es besteht auch das echte Risiko, dass ein Mann in der Mitte die übertragenen Daten abfangen und unbemerkt modifizieren kann, bevor sie vom Server empfangen werden, der das Skript hostet. HTTPS / SSL schützt nicht nur Passwörter, sondern stellt auch sicher, dass keine Daten manipuliert werden.

Wie Zarthus bereits erwähnt hat, ist es am besten, mit einer Lösung von einem Drittanbieter zu arbeiten, vor allem, wenn Sie HTTPS nicht für Ihr Angebot anbieten können.

    
brazenest 06.04.2014 12:09
quelle

Tags und Links