Benutzer-Werkzeuge

Webseiten-Werkzeuge


project:dokuwiki-monitoring

Monitoring fuer Dokuwiki

/[* :begin: 2012-03-02 *]/ /[* :end: 2012-03-02 *]/ /[* :title: Dokuwiki-Monitor *]/ /[* :claim:de: Monitoring fuer Dokuwiki als Massnahme zur Spamabwehr *]/ /[* :abstract:de: Wiki-Spam hat oft charakteristische Merkmale, die sich zur Spamabwehr nutzen lassen *]/ /[* :claim:en: *]/ /[* :abstract:en: *]/ /[* :img: http://shackspace.de/lib/img/softwareproject.png *]/ /[* :who: ak-sub *]/ /[* :contact: kontakt@shackspace.de *]/

Problem: Wiki-Vandalismus

Dann und wann schieben Bots sinnfreien Unfug ins Wiki.

Irgendwelche kurzen Texte, die alles und nichts bedeuten koennen. Keine Werbung, keine URLs, keine Auszeichnungen:

The best rsseonpe to bad speech is good speech Criminals can still be infiltrated by the police.And for the rest, the best control is knowledge and awareness about what scams look like.

Schlecht elektronisch zu erfassen.

Auffaellig ist gerade noch der eine Typo rsseonpe, der sich in den Nachrichten immer findet, aber aus dem konnte ich bisher nichts maschinenverwertbares machen.

Weiterhin fallen dem trainierten neuronalen Netzwerk zwischen den Ohren die Inhalte der „Zusammenfassung“-Eintraege auf:

QOzJzCkSPXInDLG

Ansatz

Dokuwiki kann User ueber geaenderte Seiten benachrichtigen.

Die entsprechende Mail enthaelt ein Diff der Page, ein paar weitere Angaben und die Zeile „Uebersicht:“ mit der eingegebenen Zusammenfassung.

Die wird jetzt ins „Subject:“ der Mail kopiert, damit man den Foo sofort erkennen kann.

HOWTO

Script dokuwiki-mailfilter

#!/usr/bin/perl
#
# bearbeitet die Info-Mails vom Dokuwiki nach:
# sucht die "Uebersicht"-Zeile und kopiert sie ins Subject
# 

use strict;

my @Lines = ();
my @Header = ();
my $u = undef;

while ( my $l = <> ) {
	push @Header,$l;
	if ( $l eq "\n" ) {
		last;
	}
}

while (my $l = <>)  {
	push @Lines,$l;
	chomp $l;

	if ( $l =~ /^(Zusammenfassung|=C3=9Cbersicht):/ ) {
		$u = $l;
		$u =~ s/^(Zusammenfassung|=C3=9Cbersicht): //;
		$u =~ s/^=20//g;
		$u =~ s/(^\s+|\s+$)//g;
		$u =~ s/[\n\r]+/ /g;
	}
}

if ( $u ) {
	for my $i ( @Header ) {
		if ( $i =~ /^Subject: / ) {
			chomp $i;
			$i .= " [$u]\n";
		}
	}
}

print @Header,@Lines;

procmailrc

## shackspace dokuwiki messages
# f = filter whole mail
# H = match header
:0 fH
* ^Subject: (=\?UTF-8\?Q\?)?\[shackspace[_ ]wiki\]
|dokuwiki-mailfilter

Ergebnis:

Aus

Subject: [shackspace wiki] Seite geaendert: playground_playground
...
=C3=9Cbersicht: QOzJzCkSPXInDLG

wird

Subject: [shackspace wiki] Seite geaendert: playground_playground [QOzJzCkSPXInDLG]
project/dokuwiki-monitoring.txt · Zuletzt geändert: 2022-04-20 10:39 von chris