phpbb - viele user loeschen
seth_not@home
- sonstiges
gudn tach!
bei einem bekannten von mir, der phpbb nutzt, haben sich in den letzten tagen ein haufen spammer angemeldet, da seine anmeldungsrichtlinien zu schwach eingestellt _waren_. nun moechte er bloss noch die ca. 500 dummy-user loeschen.
wie geht das am besten? meine erste idee war phpmyadmin und ein sql-delete aller user, die sich in gewissen zeitraeumen angemeldet haben. aber dazu muesste man die genaue struktur von phpbb kennen, um keinen mist zu bauen. tun wir aber nicht. also bleibt bisher nur die konventionelle methode, die jedoch aus einer groesseren anzahl von schritten pro loeschvorgang besteht. ok, bei 500 leuten wuerde es sich schon lohnen, ein script zu schreiben, was wir auch notfalls tun werden. aaaber viellecht hat ja schon jemand sowas geschrieben und stellt's zum dl bereit oder hat eine andere idee.
prost
seth
Hi seth_not@home,
wie geht das am besten? meine erste idee war phpmyadmin und ein sql-delete aller user, die sich in gewissen zeitraeumen angemeldet haben.
PHPMyAdmin war auch meine erste Idee und ist wohl das beste um einen einfachen SQL-Statement direkt abzusetzen. Die Frage ist halt an was für Kriterien du die Datensätze des Spammers erkennst - vermutlich hat der Spammer überall einen anderen Namen für den Benutzer angegeben... Der Username muss ja sowieso unterschiedlich sein.
Deshalb würde ich da der Spammer wohl alle Eintrage ziemlich direkt nacheinander abgesetzt hat über die User-ID gehen (ich gehe jetzt mal stark davon aus, dass es in der entsprechenden Tabelle eine solche ID gibt). Mit einem SQL-Statement à la
DELETE FROM
tabelle
WHERE
id BETWEEN 120 AND 200
sollten sich alle User mit den entsprechenden IDs löschen lassen - Bedingung ist aber, dass zwischen den Usern nicht irgendwo ein richtiger User drin ist, der sich halt grade auch zu dem Zeitpunkt angemeldet hat.
MfG, Dennis.
gudn tach!
Die Frage ist halt an was für Kriterien du die Datensätze des Spammers erkennst - vermutlich hat der Spammer überall einen anderen Namen für den Benutzer angegeben...
ja, und es war nicht nur ein spammer. aber sie alle hatten apnic-adressen, deswegen werden jetzt in diesem phpbb die meisten asiaten (und australier, ...) einfach ip-basierend ausgesperrt. wer trotzdem rein moechte, soll sich beim admin melden. ;-)
Der Username muss ja sowieso unterschiedlich sein.
ja. da es "nur" ca. 500 user waren, worunter sich nur ca. 10 richtige verbargen, konnte man die manuell durchsehen und sich einfach die nicht-zu-loeschenden merken.
sollten sich alle User mit den entsprechenden IDs löschen lassen - Bedingung ist aber, dass zwischen den Usern nicht irgendwo ein richtiger User drin ist [...]
richtig, aber dafuer gibt's ja dann "and not in (x, y, ...)".
prost
seth
gudn tach!
da die userdaten anscheinend nur in den drei tabellen
phpbb_..._user_group
phpbb_..._users
phpbb_..._groups
stehen, kann man auch einfach und bequem via sql dort die daten loeschen.
dass es wirklich nur diese drei tabellen sind, haben wir auf folgende weise eruiert und sind - um es vorwegzunehmen - deshalb nicht 100% sicher, ob es wirklich stimmt:
zum einen haben wir ein script gefunden, welches sowas aehnliches macht, wie das was wir vorhaben, also viele user auf einmal loescht, und dieses script loescht eintraege nur aus diesen tabellen.
zum anderen haben wir zwei komplett-dumps mit "diff" verglichen, die sich nur dadurch unterschieden, dass bei dem einen ein user ueber das phpbb-interface geloescht wurde.
prost
seth
gudn tach!
jetzt ist was seltsames passiert. trotz captcha und bestaetigung per e-mail haben sich erneut drei spammer im besagten phpbb angemeldet. allesamt mit russischen e-mail-adressen. im log-file steht unter anderem folgende zeile, die mein verstaendnis von post und get durcheinander wirft:
... "POST /phpBB2/profile.php?mode=register&agreed=true HTTP/1.1" 200 ...
macht das sinn? kann man get und post so mixen?
prost
seth
echo $begrüßung;
... "POST /phpBB2/profile.php?mode=register&agreed=true HTTP/1.1" 200 ...
macht das sinn? kann man get und post so mixen?
Natürlich. Der POST-Request geht an eine URL und die kann auch einen Querystring haben. Als Drittes kannst du in einem POST-Request auch noch Cookie-Daten mitsenden. An allen drei Stellen können die selben Namen verwendet werden. Und damit man zumindest als PHP-Programmierer nicht durcheinanderkommt gibt es neben der Zusammenfassung $_REQUEST auch alles hübsch einzeln: $_GET, $_POST, $_COOKIE.
Ob es sinnvoll ist? Sagen wir mal so: Jeder muss für seine Anwendung selbst entscheiden, welche Wege der Datenübertragung er für sinnvoll hält. Eine pauschale Beurteilung halte ich nicht für sinnvoll.
echo "$verabschiedung $name";
p.s. PATHINFO als vierten Weg gibt es auch noch (zumindest beim Apachen).
gudn tach!
... "POST /phpBB2/profile.php?mode=register&agreed=true HTTP/1.1" 200 ...
macht das sinn? kann man get und post so mixen?
Natürlich. Der POST-Request geht an eine URL und die kann auch einen Querystring haben. [...]
ah, ok. ich nahm bisher an, das wuerde nur gehen, wenn der request auch per get erfolgt.
nun gut, jetzt weiss ich's besser.
prost
seth