Seite 1 von 1

Alle Links forenweit löschen?

Verfasst: 23.11.2014 13:52
von Loewenherz
Hallo,

in einem alten Forum, das ich gerade auf 3.1.1 gebraucht habe und nun administriere, gibt es das Problem, dass es massiv für Linkspam missbraucht worden ist. Da ich nicht jeden Beitrag einzeln checken kann, würde ich am liebsten eine Routine über die Datenbank laufen lassen, die jeden Link entfernt (wenn möglich nur ausgehende, ansonsten eben der Einfachheit halber jeden). Weiß jemand, ob das geht?

Re: Alles Links forenweit löschen?

Verfasst: 23.11.2014 16:00
von HabNurNeFrage
Hi,

exportiere die Tabele phpbb_posts, öffne die Datei mit Notpad++ und versuche Dich an verschiedenen RegEx-Pattern zum Teilersetzen.

Das folgende Beispiel findet alle Textteile, die mit http, www oder [url beginnen bis zum nächsten Leerzeichen: \b(http|www|\[url)\.[^\sa-zA-Z]+

Ich würde es zunächst mit einem kurzen Text testen, bevor ich es auf die eventuell riesige Datei anwenden würde.
Bei Dateien mit mehreren MegaByte schmiert mir Notepad++ bei solchen Aktionen auch schon mal ab...

LG

Re: Alle Links forenweit löschen?

Verfasst: 23.11.2014 16:37
von Loewenherz
Danke für den Tipp. Recht knifflig im laufenden Betrieb.
Als erste Hilfe hab ich mal alle User mit maximal 5 Postings gelöscht, die sich in den letzten zwei Jahren angemeldet haben. Hat schon mal viel Spam gelöscht dadurch.
Im Moment grüble ich über weitere Lösungen, die phpBB technisch hergibt.

Re: Alle Links forenweit löschen?

Verfasst: 24.11.2014 11:16
von gn#36
Reguläre Ausdrücke kannst du auch direkt in der Datenbank verwenden: http://dev.mysql.com/doc/refman/5.6/en/regexp.html

Leider kann man damit nur suchen, nicht ersetzen. Das geht aber mit User defined functions: https://github.com/hholzgra/mysql-udf-regexp, die du lokal z.B. anlegen kannst.

Oder aber du nutzt die regulären Ausdrücke um wirklich nur die Posts mit URLs zu laden, bearbeitest die dann in einem kurzen Skript und schreibst sie wieder zurück in die Datenbank. Das können natürlich ne ganze Menge sein, also musst du das vermutlich schrittweise mit Reload der Seite machen, es sei denn du machst das über die Kommandozeile.

Re: Alle Links forenweit löschen?

Verfasst: 24.11.2014 11:44
von Loewenherz
Vielen Dank. Dann hoffe ich, dass es mir gelingt, dort ein Mod-Team aufzubauen, das sich manuell darum kümmert, alles andere klingt zu komplex.

Ansonsten hier noch mal eine Ergänzung von gestern, die leider gelöscht worden ist, weil ich sie innerhalb einer Stunde als neue Antwort gepostet hatte:
Ich träum gerade von einer Extension, die einem eine Liste aller User anzeigt mit Angaben wie: Menge der Postings (haben wir ja bereits), Menge der von diesem User gesetzten Links insgesamt, Prozentual Postings mit Links etc. Die einem Nachrichten schickt, wenn definierte Grenzwerte überschritten werden. Und man dann mit einem Klick ausgewählte User samt Beiträgen löschen könnte. Vielleicht sammel ich weiter Ideen und poste das ins Extension-Board, denn aus meiner Sicht gehen seit Jahren auch viele Foren wegen SEO-Spam / Persona-Building den Bach herunter, so dass eine solche Funktionalität Board-Betreibern sehr helfen könnte.