Cookies in LAN

Moin

Ich habe mir ein Script geschrieben, welches Cookies erstellt, das t natürlich problemlos. Aber wie es immer ist, hat die Sache einen Haken: Befindet man sich in einem LAN (z.B. schule -.-) und loggt sich ein (cookies...), ist man auf allen PCs im LAN angemeldet. Irgendwie logisch, aber ich frage mich, wie ich es sonst umsetzen könnte?
Arbeiten Sessions da anders?

PS: HIer der Code zur Cookie-Erstellung:
PHP:
if(!@setcookie(COOKIE_NAME, $cookie_string,time()+7200)) {
	die("Überprüfe bitte, ob dein Browser Cookies akzeptiert.");
} else {
	die("Sie werden weiterleitet");
}
 
Nur derjenige Computer, der den Cookie samt korrekten Daten sendet, sollte diesen Status haben. Die anderen Computer aber nicht – auch wenn sie sich hinter derselben IP-Adresse befinden. Oder identifizierst du die Benutzer nur anhand der IP-Adresse?
 
Das ist es ja, was mich verwundert... Bei sämtlichen Scripts (die ich geschrieben habe und die mit cookies arbeiten) funktioniert es...
PHP:
function cookie_array() {
	global $_COOKIE;
	if(empty($_COOKIE[COOKIE_NAME])) {
		return false;
	}
	return unserialize(base64_decode($_COOKIE[COOKIE_NAME]));
}

und dann mache ich immer:
PHP:
if(is_array(cookie_array())) {
    //eingeloggt
}

Kann es sein, dass da der Fehler begraben liegt?
 
Nein, daran kann es nicht liegen. Ich frage mich allerdings, was du alles im Cookie speicherst.
 
Ich speichere den Usernamen und das Passwort... Mehr kommt da nicht rein... Pwd natürlich verschlüsselt... Das gebrauche ich, um dann bei Seitenaufbau die verschiedenen Daten abzurufen, wie z.B. id, letzte IP, und die ganzen Sachen...

PS: Würde es mit $_SESSION besser en? Weil das Umbauen ist ja nicht das Problem... Aber wenn es damit auch nicht t isses sinnlos oder?
 
Das habe ich schon verstanden. Nur aufgrund welchen Zustands/Status setzt du den Cookie? Speicherst du vielleicht nach erfolgreichem Login die IP-Adresse und setzt den Cookie bei jedem mit dieser Adresse?
 
Interessanterweise funktioniert es nach einer Neuinstallation der Software problemlos, kann also geclosed werden...

Und um die Frage von dir zu beantworten: Ich setze das cookie einmalig sobald der Login erfolgte (IP-Adresse wird nur in der DB gespeichert, hat aber nix mit den Cookies zu tun sondern mit Multiaccountsuche...) mit einer Zeit von 2h und einem base64 encoded serialized array, welches username und passwort (md5) speichert... Bei jedem Seitenaufruf wird dann die funktion cookie_array aufgerufen, welche false zurückgibt wenn das cookie nicht gesetzt und wenn ja wird auf den string er im cookie gespeichert ist zuerst base64_decode und dann unserialize angewand, was in einem Array resultiert, welches dann zurückgegeben wird. Diese beiden Werte werden dann in der DB abgefragt und für den Fall einer Existenz des Users werden benötigte Daten geholt und ein dem array $user gespeichert, welches ich dann für verschiedene Berechnungen etc. verwende



mfg
 
Zurück