Ich möchte ein einfaches Login-System in meiner Website erstellen, die ich für akademische Zwecke entwickle.Einfacher und effizienter Login-Mechanismus mit PHP und Datenbank
Das ist, was ich bisher getan:
- Ein Benutzer wird, ein Formular zur Eingabe von Benutzername und Passwort ausfüllen muß und dann das Formular (
POST
Methode) einreichen. Beide Vars werden bereinigt. Abfrage von Datenbank
SELECT id FROM user WHERE username = x AND password = y
Wo
x
undy
sind Benutzername und Passwort erworben$_POST['variable_name']
Dann verwendet, um ich PHP-Funktion
rowCount()
. Wenn das Ergebnis = 1 (und nur eins) ist, wird dieser Benutzer benachrichtigt, dass der Anmeldevorgang erfolgreich ist und eine Benutzer-ID-Sitzungsvariable gesetzt wird.
Also, ist diese Art von Login-System einfach und effizient genug? Ich brauche jetzt keine zusätzliche Sicherheitsmaßnahme (wie Passwort-Hashing).
Das Sanitisieren von Variablen anstelle von parametrisierten Abfragen ist vor 10 Jahren aus der Mode gekommen (dh nicht Best Practice). Ich sehe keinen Grund, kein Hashing hinzuzufügen, es ist überhaupt nicht schwer, das Passwort api zu verwenden, das in php (password_hash und password_verify) eingebaut ist. Am häufigsten werden die Daten des Benutzers tatsächlich abgerufen. Sie möchten wahrscheinlich die Benutzer-ID zu ession hinzufügen, damit Sie wissen, welcher Benutzer bei der Verarbeitung späterer Anforderungen angemeldet ist. – JimL
@JimL meinen Sie parametrisierte Abfragen mit 'prepare()' und ' execute() '? Wenn ja, kann ich das verwenden. Dito auf 'password_hash' und' password_verify'. – GPraz
Ja, in der Tat ersetzt Vars in der Abfragezeichenfolge mit? oder: parameterName – JimL