Massen-Rollback in MediaWiki

3171
Tyler Carter

So,

Ich habe ein persönliches Wiki, mit dem ich Code, Programmiermethoden und all das Gute bei StackOverflow dokumentieren kann. Ich habe auf eine der Seiten mit einer SO-Antwort und einem BOOM verlinkt! Spam Bots.

Wenn ich darauf nicht vorbereitet bin, werden die meisten meiner Seiten jetzt mit Links zu Seiten gefüllt, auf die ich nie mehr klicken werde.

Meine Frage ist, wie ich einen Massen-Rollback durchführen kann, anstatt einzelne Rollbacks. Gibt es beispielsweise eine Möglichkeit, alle von einer bestimmten IP-Adresse vorgenommenen Änderungen zu löschen? Oder muss ich jede Seite einzeln durchgehen und sie manuell zurückrollen.

Danke für jede Hilfe!

Edit: Es sieht auch so aus, als ob das MediaWiki-Rollback-System auch nicht intuitiv ist. Die Bots haben mindestens 12 Änderungen an jeder Seite vorgenommen, und ich kann sie vor 12 Änderungen nicht zurücksetzen.

6
Nun, nur bei Google: "Mass Rollback" ruft dieses Benutzer-JS-Skript auf: http://en.wikipedia.org/wiki/User:John254/mass_rollback.js Hello71 vor 13 Jahren 0

3 Antworten auf die Frage

5
Tyler

Sie können Ihre Datenbank immer nur aus Ihrer Sicherung wiederherstellen, oder?

Die Wiederherstellungsmethoden auf meta.wikimeda.org sollten funktionieren, aber wie Sie darauf hinweisen, wird dies nicht auf vielen Seiten fließen .

Ich denke, Sie könnten manuell in die MySQL-Datenbank einsteigen und sich vor den Spambots entfernen, aber ich bin mir nicht sicher, wie das funktionieren würde.

1
Jehy

Basierend auf SQL-Abfragen von Stan Sokolov konnte ich ein schreckliches Durcheinander in meinem Wiki beseitigen - ich habe es seit einem halben Jahr nicht überwacht und es war voll mit Spam. Ich musste es ab einem bestimmten Datum reinigen.

Wenn Sie dasselbe versuchen, sichern Sie sich bitte zuerst ein Backup - diese SQL-Abfragen können Ihr Wiki zerstören, Kätzchen töten und eine Schwangerschaft verursachen.

In diesem Beispiel ist "tr_" mein Präfix, "189" ist die letzte gültige Seiten-ID, "41" ist die letzte gültige Benutzer-ID und "20130215152547" ist das erste Spam-Eintragungsdatum.

#Update page state to last good before the date UPDATE tr_page p SET p.page_latest=( SELECT MAX(r.rev_id) FROM tr_revision r  WHERE r.rev_page=p.page_id  AND rev_timestamp <20130215152547) WHERE p.page_id IN  (SELECT r2.rev_page FROM tr_revision r2 WHERE rev_timestamp >=20130215152547);  #Update page length to match actual UPDATE tr_page p SET p.page_len=( SELECT r.rev_len FROM tr_revision r WHERE r.rev_page=p.page_id AND r.rev_id=p.page_latest );  #Clean up spam revisions  DELETE FROM tr_revision WHERE rev_timestamp >=20130215152547;  #Clear recent changes  DELETE FROM tr_recentchanges WHERE rc_timestamp >=20130215152547;  #Block all new bad users from ever entering wiki with this login UPDATE tr_user SET user_password = '', user_newpassword = '', user_email = '', user_token = '' WHERE user_id>41;  #Delete pages, staring from the last good id DELETE FROM tr_page WHERE page_id>189;  #Also, you will need TO clean TABLE tr_pagelinks. #You will have to do it manually. It's easy, use some editor #like PHPMyAdmin or SQLyog  #Clean cache  DELETE FROM `tr_objectcache`; DELETE FROM `tr_querycache`; DELETE FROM `tr_querycachetwo`; 
Vielen Dank! Dies funktionierte wie ein Zauber, außer "Random page" besucht immer noch die Müllseiten. Text wie der folgende wird angezeigt: `Die Version # 0 der Seite" TedderConover162 "ist nicht vorhanden. Dies wird normalerweise dadurch verursacht, dass Sie einem veralteten Verlaufslink einer gelöschten Seite folgen. Details finden Sie im Löschprotokoll.` Lori vor 8 Jahren 0
0
Dave Brondsema

http://www.mediawiki.org/wiki/Extension:Nuke ist eine Erweiterung, mit der Sie alle von einem Benutzer erstellten Seiten / IP löschen können. Mit dem in einem Kommentar von Hello71 erwähnten JS-Skript können Sie alle Änderungen eines bestimmten Benutzers rückgängig machen. Zusammen verwendet, funktioniert es ziemlich gut.

Für Ihren speziellen Fall, dass auf jeder Seite 12 Änderungen von mehreren Bots vorgenommen wurden, weiß ich nicht, wie gut das gehandhabt werden kann.