PHP: Erinnere dich an mich und Sicherheit?

8

Während der Zeit, die ich damit verbracht habe zu lernen, wie PHP Unicode unterstützt, habe ich mich intensiv damit beschäftigt, meine "Remember Me" -Cookies etwas sicherer zu machen. Es gibt jedoch ein paar Dinge, die ich nicht verstehe, und ein paar meiner Überlegungen, über die ich gerne ein paar Anregungen und Meinungen hätte.

1) Gibt es eine Methode, um eine "Remember Me" -Funktion zu verwenden, die keine Cookies enthält? Neugierig, da beim Speichern von Authentifizierungscookies offensichtlich Sicherheitslücken bestehen. Nicht, dass es in fast allem nicht Sicherheitsrisiken gibt.

2) Da ich nicht mit einer Bank oder "hochsensiblen" Informationen arbeite, ist es notwendig, dass die Benutzer ihre Passwörter für die "high profile" Bereiche eingeben müssen? Es scheint, dass die Erinnerung an einen Login eine Verschwendung wäre, wenn wir sie nur zwei Minuten später dazu auffordern würden, sich im Wesentlichen einzuloggen.

3) Was ist die absolut beste Methode zum Speichern eines Authentifizierungscookies (abgesehen von "gar nicht")? Ich habe diesen Bereich zur Zeit programmiert, um ein einzelnes Token im Cookie zu setzen (Hashing mit time (), ihrem User-Agent, remote_addr und einem Salz - sha256). Wenn dieser Benutzer zurückkommt, überprüft er die Tabelle "Sitzungen" auf das Token und vergleicht dann IP mit IP, um sie einzuloggen. Wenn das Token dort ist, aber die IP nicht übereinstimmt, löscht es den Cookie und fordert sie auf, sich einzuloggen wenn sie keinen hatten.

Nochmals vielen Dank.

    
Zydeco 20.01.2011, 04:55
quelle

1 Antwort

6
  1. Im Wesentlichen, nein. Es erfordert eine Art von Speicher auf der Client-Seite; Sie haben keine Möglichkeit zu wissen, wer ein Client ohne Cookie ist (oder ähnlich, wie HTML 5 clientseitiger Speicher).

  2. Das ist ein Kompromiss, den Sie entscheiden müssen. Minimum, das alte Passwort oder eine andere Form der Bestätigung (E-Mail?) Sollte erforderlich sein, um sie in eine neue zu ändern.

  3. Sie können nicht absolut vor dem Diebstahl von Cookies und dem nachfolgenden Identitätswechsel schützen, es sei denn, Sie verschlüsseln alle Kommunikationen. Das ist die einzige sichere Methode. Sicher, es könnte hilfreich sein, dem Cookie eine IP, einen User-Agent usw. zuzuordnen, aber es ist einfacher und sicherer, sich auf die Verschlüsselung zu stützen.

der Cookie ist, dass es zufällig ist, also sollten Sie Ihre Generationsmethode ändern, um weniger vorhersehbar zu sein)

Artefacto 20.01.2011, 05:02
quelle

Tags und Links