Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Doppelte Anmeldung anhand der IP verhindern



jpwfour
31.05.2008, 21:45
Anleitung:

Datei content/intern/anmelden.php


db_query("INSERT INTO ".$db_prefix."_kontodaten (uid,passwort,status,hinweis,kontostand) VALUES ('','".md5($_POST['passwort_1'])."','0','','0')");ersetzen mit:


db_query("INSERT INTO ".$db_prefix."_kontodaten (uid,passwort,status,hinweis,kontostand,login_ip) VALUES ('','".md5($_POST['passwort_1'])."','0','','0','".$ip."')");jetzt wird schon beim anmelden die ip in der datenbank gespeichert.

suche:


if ($_POST['anmelden'] == "Jetzt anmelden!") {füge direkt danach ein:

$ipcheck = db_query('SELECT login_ip FROM '.$db_prefix.'_kontodaten WHERE login_ip = "'.$ip.'" ');
if(mysql_num_rows($ipcheck)!=0){
$error.='Nur ein Account pro Person/IP. Sollte das ein Fehler sein, wenden Sie sich an den Administrator.<br>';
}nun sollte sich keienr mehr direkt 2x hintereinander anmelden können, es kann natürlich passieren, dass ein user diese meldung mal unberechtigter weise angezeigt bekommt (wobei die wahrscheinlichkeit sehr gering ist), aber in dem falle sollte man halt ein kontaktformular oder email adresse angeben, damit der user manuell eingetragen werden kann bzw. die betreffende ip aus der db gelöscht.

Bisher nur im vms 1.2 mit klammanbindung getestet, sollte aber normalerweise auch in dem ohne klammanbindung funzen.

Xenon
31.05.2008, 21:52
Aber wenn jmd. eine Dynamische IP hat und da reingeret weil jmd. diese ip schon eingetragen ist ... ,

jpwfour
01.06.2008, 00:21
ca. 90% aller user werden wohl eine "dynamische" ip haben, also keine feste (soeine haben normalerweise nur server). diese wechselt ja aber nicht ständig, sondern nur alle x stunden/tage bzw. wenn man sich neu einwählt (modem) oder den router resettet.

und als vergleichswert werden ja nur die ips genommen, die bei usern beim login in der datenbank gespeichert werden.

also kann es natürlich sein (hab ich ja auch geschrieben), dass
user A sich mit der ip XXX eingelogt/angemeldet hat,
und sich dann 4 stunden später user B,
der jetzt mittlerweile genau diese ip XXX zugewiesen bekommen hat,
sich anmelden will, kann er aber nicht, fehlermeldung.

dieser fall ist bei 2^32 möglichen ip adressen (ipv4) aber doch recht unwahrscheinlich, und wenn es doch mal passiert (da ja die isp's reservierte ip bereiche haben), kann sich der user ja eben an den admin wenden, dann löscht dieser entweder die ip aus der datenbank, oder meldet den user manuell an.

aber ich behaupte jetzt mal, dass dieser fall nicht so schnell eintritt.
außerdem wolltet du doch diese absicherung haben (http://www.designerscripte.net/showthread.php?t=6117) :biggrin1:

Xenon
01.06.2008, 00:26
Ich wollte garnichts ich wollte nur bescheid geben das sowas möglich ist und und den webbis die augen öffnen damit die eine ip sperre einbauen z.b. und were es nicht sinnvoler eine extra db. zu machne z.b. vms_ips und dnn könnte man mittels cron alle allten ips einfahc und schnell löschne :thumb:

jpwfour
01.06.2008, 13:54
das braucht man nicht, also extra datenbanktabelle udn alte ips löschen, weil die in kontodaten->login_ip jedesmal beim login mit der neuen überschreiben werden, was ja dann im endeffekt aufs gleiche rauskommt.

SebbyPHM
01.06.2008, 16:51
Was mache ich z. Bsp. in der Schule?

jpwfour
01.06.2008, 16:56
Was mache ich z. Bsp. in der Schule?

lernen?

verstehe die frage jetzt nicht so ganz...

wenn du meinst, was passiert, wenn du dich von einem hotspot/internetcafe/schulinetraum etc. anmelden willst, wo ja mehrere über eine ip ins inet gehen, dann kann ich nur sagen -> "Pech gehabt"

dann haben numal 2 di geliche ip, diese würde auch in der "dopplete ip liste" auffallen, und auch bei klamm würden die admins auf dich und den jeweils anderen aufmerksam werden.

natürlich kann man die sperre auch nur auf cookies basierend machen, aber dass halte ich dann schon wieder für so unsicher, dann kann man es auch gleich lassen.

web_com
01.06.2008, 22:31
Hallo

dieses Codeschnippsel suche ich schon ewig !!
weil ich immer das problem hat

Jetzt muss ich es noch test

Mfg WEb_com