2016-05-03 6 views
1

Ich habe eine Benutzersitzung auf meiner Website. In Login-Seite ich tun:Passwort in allen Einschränkungsseiten überprüfen oder nur beim Login?

//mysqli select 

if (password_verify($password, $hash)) { 
    $_SESSION["user"] = $user; 
} 

so jede Seite überprüfe ich gerade: if(!isset($_SESSION["user"])){die();}

mein Freund sagte mir, dass ich auch in einer Sitzung, bei der Anmeldung das Kennwort aufnehmen soll, wie folgt aus:

und auf jeder Seite eine Auswahl in mysql erneut mit Sitzung Benutzer und Pass überprüfen Sie, ob die Anmeldung gültig ist oder nicht.

Also meine Frage ist, muss ich das Passwort in mysql jeder Seite überprüfen oder kann ich es nur einmal im Login tun?

+4

kann seine Auswirkungen auf ur Leistung nach Abfrage auf jeder Seite sein ... ich glaube nicht, dass Sie Abfrage auf jeder Seite hinzufügen müssen ... einmal Abfrage ausführen, warum wieder, indirekt Sie Login immer wieder nach dem Hinzufügen von Abfrage zu Jede –

+3

Das Passwort wird nicht benötigt. Sie gewinnen keine Sicherheit, aber Sie verlieren viel Leistung. – colburton

+1

Ich denke du wettest mit deinem Freund;) –

Antwort

3

Wenn Sie Sitzung verwenden, um sich anzumelden, dann müssen Sie das Passwort nicht auf allen Seiten verifizieren, da Sitzungsvariablen nur von Ihrem Programm bearbeitet werden können. Wenn Sie andererseits Cookies verwenden, um Benutzer und Passwort zu speichern Möglicherweise müssen Sie alle Seiten überprüfen, da Benutzer Cookies ändern können.

Aber wenn Sie Session-Variablen verwenden und wenn Sie den Benutzer aus Ihrem Admin-Panel löschen oder seinen Kontozugriff sperren, und wenn der Benutzer angemeldet war, bevor er den Zugriff fortgesetzt hat. Sie müssen also auch überprüfen, ob der in der Sitzung gespeicherte Benutzername und das Passwort immer noch gültig ist oder nicht.

3

Es macht keinen Sinn.

  1. Sie erhalten Passwort von Login-Formular
  2. Sie überprüfen es korrekt ist oder nicht
  3. Wenn korrekt Sie für andere Seiten erlauben

Nun, wenn Sie zu der Zeit in der Sitzung gleiche Passwort speichern von login, Sie erhalten Passwörter Übereinstimmung auf jeder Seite, weil Passwörter in Sitzung ist und wird gleich sein, bis Sitzung ablaufen wird, und auf Sitzung ablaufen Benutzer sollte nur Login-Seite gehen.

Dies kann die Leistung beeinträchtigen.

+0

danke für deine Antwort! Hacker können also kein $ _SESSION ["user"] hinzufügen, wie zB "admin" zu $ ​​_SESSION ["user"] hinzufügen? –

+1

Sitzungsvariablen können nur von Ihrem Programm bearbeitet werden. – AkshayP

+1

Bitte beachten Sie: http://StackOverflow.com/questions/3798532/can-session-value-be-hacked – AkshayP

Verwandte Themen