ich habe da mal eine Frage bezüglich der Sicherheit von Cookies.
Und zwar wollte ich eine „eingeloggt bleiben“ Funktion erstellen.
Das heißt, dass nachdem sich der Benutzer eingeloggt hat, wird ein Cookie mit der Email-Adresse und einer mit dem gehashten Passwort erstellt.
Ruft der Nutzer die Seite erneut auf, wird überprüft ob ein Cookie vorhanden ist und falls ja, ein Login mit diesen Daten versucht.
Jetzt meine Frage:
Ist das das normale Vorgehen oder handel ich damit grob fahrlässig und öffne damit eine riesige Sicherheitslücke?
Soweit ich weiß wird in zwei Arten von Cookies unterschieden. Einmal die Dauerhaften Cookies (bleiben über Monate oder gar Jahre auf dem Computer) und Session-Cookies (werden automatisch immer dann gelöscht, wenn der Browser geschlossen wird. Ein Sicherheitsrisiko stellen diese Cookies nicht dar.) So mein Wissensstand.
Ich verwende die dauerhaften Cookies, weil der Nutzer ja auch nach dem schließen des Browser ohne Login (kein erneutes Eingeben, sondern Cookie auswerten) reinkommen soll.
Okay, also einfach beim einloggen eine zufallsgenerierte Zahl als Cookie und in der DB platzieren.
Beim nächsten Login email, password und randomnumber abfragen.
Falls das funktioniert, neue randomnumber generieren und sowohl Cookie als auch DB-Eintrag überschreiben.
Sollte klappen.
Und die die process_login_cookie.php:
[PHP]<?php
include_once ‚db_connect.php‘;
include_once ‚functions.php‘;
sec_session_start(); // Unsere selbstgemachte sichere Funktion um eine PHP-Sitzung zu starten.
$email = $_COOKIE[„email“];
$password = $_COOKIE[„password“];
if (login($email, $password, $mysqli) == true) {
// Login erfolgreich
header(‚Location: …/db_groups.php‘);
} else {
header(‚Location: …/index.php‘);
}[/PHP]
Ich würde jetzt mal davon ausgehen, dass der Login mit dem Cookie noch nicht klappt und daher eine Weiterleitung auf index.php erfolgt und diese wiederum auf die process_login_cookie.php weiterleitet, wodurch der Login wieder nicht klappt und es zurück zur Index.php geht … also eine Endlosschleife.
Oder Sie haben nie einen derartigen Fehler verursacht.
Was das mit HTML zu tun hat? Ich wusste einfach nur nicht, in welches andere Unterforum ich das schreiben könnte und das sah mir der Teil fürs „Allgemeine“ aus.
Hab es im übrigen hinbekommen.
Es war genauso, wie oben beschrieben. Der fehlerhafte Login-Versuch resultierte in einer Endlosschleife.
Es gab einen Fehler bei der Übermittlung der Zufallszahl ans Login-Script. Jetzt funktioniert alles bestens!
Create a cookie called SOMETHING containing: md5(salt+username+ip+salt) and a cookie called somethingElse containing id
Es muss ja aber nicht genau so sein, man kann ja andere Werte und Variablen nehmen.
Und ja, klingt logisch, dass in das PHP-Forum zu verschieben. Aber ich denke so eine Kleinigkeit sollte jetzt nicht ein riesen Problem darstellen. Im übrigen, 2 Posts und beide haben eigentlich nichts mit dem Thema zu tun
Bezüglich der IP: die IP des Nutzers kann sich doch verändern, ergo würde er unter dem o.g. Vorgehen dann nicht wieder eingeloggt werden.