PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Forum wurde mit Regestrierungen gespamt


Bierhasser
04.01.2003, 13:40
Unser forum wurde heute nacht mit 9123 neuen Regestrierungen zugespamt. Der Verursacher hatte wohl ein Script am laufen das innerhalb 15 Minuten 9123 neue User angelegt hatte.
Nun meine Frage ist nachfolgendes Script sinvoll?

In der register.php alle einträge mit: suchen
eval("standarderror(\"".gettemplate("error_alreadyregistered")."\");");

exit;
}
Dies sollte 3mal vorkommen.

und darunter eingefügt:
$keys = array('ipaddress');
foreach ($keys as $key) {
$result=$DB_site->query("SELECT * FROM user WHERE ipaddress='$ipaddress'");
if(mysql_num_rows($result) != 0) {
$session[$key] = (mysql_result($result,0,$key));
eval("standarderror(\"".gettemplate("error_ipregistered")."\");");
exit;
}
}

Ein neues Template: error_ipregistered mit dem inhalt: Sorry. Aber deine IP ist bereits Registriert.
und schon sollte das Registrieren mit der selben IP nichtmehr funktionieren. HOFFE ICH!!

Noch ne Frage: Zur Serverlast http://admin/options.php?t=0&s=#settinggroup24 was sollte ich da eingetragen? denn der Typ hat es soweit getrieben bis der Server in die Knie gegangen ist.

Gruß Chris

Hoffi
04.01.2003, 15:30
War das nicht ein Bug der mit der 2.2.x behoben war?

s.molinari
04.01.2003, 15:41
Hi,

Du könntest zwei dinge tun:

1. In register.php unter "// do add user" füge folgendes ein:
if ($checkip=$DB_site->query_first("SELECT ipaddress FROM user WHERE ipaddress='".addslashes($ipaddress)."'")) {
eval("standarderror(\"".gettemplate("error_error_ipregistered")."\");");
exit;
}

Das sollte genau das machen was du möchtest nämlich die Registrierung von gleichen IP Adressen verhindern. Ob das gut ist bezweifele ich.

2. Etwas schwieriger zu gestalten aber sehr machbar. Du könntest den Besucher nach einem bestimmten Wort von z.B. der FAQ Seite suchen lassen. Der Benutzer sollte dann dieses Wort in einem Profilfeld schreiben die bei der Registrierung pflicht ist. In den register.php Code vergleichst du die Angabe. Wenn sie stimmt, ist er registriert. Wenn nicht, dann error_ Template zeigen.

Das könnte man sogar etwas erweitern sodass alles mehr "zufällig" ist um solche Attacker es noch schwieriger zu machen. Aber das hier zu erklären wäre ein bisschen viel.;) Es ist aber möglich.

Scott

Bierhasser
04.01.2003, 15:55
Ich Danke dir s.molinari. ich habe deinen Vorschlag übernommen und denke das sollte auch genügen. Denn die Regestrierung soll schon so einfach als möglich bleiben aber natürlich sollte sowas nicht möglich sein.
Noch eine Frage. Ich habe die user Tabelle von gestern eingespielt und die Tazächlichen Regestrierungen noch von Hand eingetragen. Die Einträge der userfield hab ich peer DELETE FROM `userfield` WHERE `userid` > 863 gekillt. Ich hoffe das ich nicht übersehen habe?

Und nochmals meinen Dank.

Gruß Chris

Kaza
04.01.2003, 19:58
Original geschrieben von s.molinari
Hi,

Du könntest zwei dinge tun:

1. In register.php unter "// do add user" füge folgendes ein:
if ($checkip=$DB_site->query_first("SELECT ipaddress FROM user WHERE ipaddress='".addslashes($ipaddress)."'")) {
eval("standarderror(\"".gettemplate("error_error_ipregistered")."\");");
exit;
}

Das sollte genau das machen was du möchtest nämlich die Registrierung von gleichen IP Adressen verhindern. Ob das gut ist bezweifele ich.

2. Etwas schwieriger zu gestalten aber sehr machbar. Du könntest den Besucher nach einem bestimmten Wort von z.B. der FAQ Seite suchen lassen. Der Benutzer sollte dann dieses Wort in einem Profilfeld schreiben die bei der Registrierung pflicht ist. In den register.php Code vergleichst du die Angabe. Wenn sie stimmt, ist er registriert. Wenn nicht, dann error_ Template zeigen.

Das könnte man sogar etwas erweitern sodass alles mehr "zufällig" ist um solche Attacker es noch schwieriger zu machen. Aber das hier zu erklären wäre ein bisschen viel.;) Es ist aber möglich.

Scott

Du meinst solche zufalls Bilder ausgaben wie bei den FreeProvider. Das währe doch mal was fürs vb3 :)