Volltext: "EntheoWiki mit SPAM-Filter"
/* 0.1 - initial release 0.2 - new option: rewrite mail addresses with [at] and [dot] 0.3 - userdefined placeholders for [at] and [dot] 0.4 - new option: links can be open in new window (default: off) 0.5 - support for SqlTablePrefix */ class NP_AutoLink extends NucleusPlugin { function getName() { return 'AutoLink'; } function getAuthor() { return 'Kai Greve'; } function getURL() { return 'http://kgblog.de/'; } function getVersion() { return '0.5'; } function getDescription() { return 'Automatically creates links for internet and mail addresses'; } function install() { $this->createOption('InternetAddress','Automatically create links for internet addresses ?','yesno','yes'); $this->createOption('NewWindow','Open links in a new window?','yesno','no'); $this->createOption('MailAddress','Automatically create links for mail addresses ?','yesno','yes'); $this->createOption('RewriteMailAddress','Rewrite mail addresses with [at] and [dot]?','yesno','yes'); $this->createOption('at','Placeholder for @','text','[at]'); $this->createOption('dot','Placeholder for .','text','[dot]'); } function getEventList() { return array('PreItem', 'PreComment'); } function Treatment($_text) { global $CONF, $blog; if ($this->getOption('NewWindow') == 'yes') { $nw="onclick=\"javascript:window.open(this.href, '_blank'); return false;\""; } if ($this->getOption('InternetAddress') == 'yes') { $_text = preg_replace('/(\s)([http|https|ftp|file]+:\/\/[a-zA-Z0-9_?=&%;+-.\/]*)/si','\1\2',$_text); $_text = preg_replace('/(\s)(www\.[a-zA-Z0-9_?=&%;+-.\/]*)/si','\1\2',$_text); } $at = $this->getOption('at'); $dot = $this->getOption('dot'); if ($this->getOption('MailAddress') == 'yes') { if ($this->getOption('RewriteMailAddress') == 'no') { $_text = preg_replace('/(\s)([a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,5})/s','\1\2',$_text); } else { $_text = preg_replace('/(\s)([a-zA-Z0-9\._-]+)@([a-zA-Z0-9\._-]+)\.([a-zA-Z]{2,5})/s','\1\2'.$at.'\3'.$dot.'\4',$_text); } } if ($this->getOption('MailAddress') == 'no' && $this->getOption('RewriteMailAddress') == 'yes'){ $_text = preg_replace('/(\s)([a-zA-Z0-9\._-]+)@([a-zA-Z0-9\._-]+)\.([a-zA-Z]{2,5})/s','\1\2'.$at.'\3'.$dot.'\4',$_text); } return $_text; } function event_PreItem($_data) { $_data[item]->body = $this->Treatment($_data[item]->body); $_data[item]->more = $this->Treatment($_data[item]->more); } function event_PreComment($_data) { $_data['comment']['body'] = $this->Treatment($_data['comment']['body']); } function supportsFeature ($what) { switch ($what) { case 'SqlTablePrefix': return 1; default: return 0; } } } ?>10 October
EntheoWiki mit SPAM-Filter
Nachdem mich nun also seit ca. 3 Monaten massive SPAM-Attakken auf das EntheoWiki nerven, die dieses an den Rand der Unbenutzbarkeit brachten, habe ich gegengesteuert.Es ist nun dank Daniel Kinzler nicht mehr möglich, mehr als 5 Links pro Edit zu verfassen. Falls der SPAM nun mit weniger als 5 Links und entsprechend vielen Edits stattfindet, wird dort ebenfalls eingegriffen - und zwar zeitgesteuert.
Daniel gab mir den Code für ein Plugin, welches das ErfurtWiki (die genutze Wiki-Engine) soweit erweitert, dass Bearbeitungen der Seiten auf das Vorhandensein von externen Links überprüft werden und die Summe der neuen Links ermittelt wird.
Sollten mehr als 5 Links pro Bearbeitungsschritt enthalten sein, so wird dieser Edit nicht angenommen und der Schreiber erhält die Möglichkeit, einige der Links zu entfernen um unter die 5-Link-Grenze zu kommen. Es können mehrere Edits gestartet werden, wenn man mehr als fünf externe Links mitteilen wollte.
Diese Maßnahme kann vielleicht nachvollzogen werden, wenn man sich überlegt, dass ich täglich ca. 100 Seitenänderungen aus der Datenbank löschen musste, da es sich um großflächigen SPAM handelte. Sollte der SPAM nun mit kleineren Linkszahlen weitergehen, so wird auch dagegen eine technische Lösung gefunden.
[Druckversion direkt zum Drucker senden]
Geschrieben von harko um 13:28:07 Uhr - Kategorie: Technik
Karma: 16 [+/-]
Trackback
Derzeit keine Trackbacks vorhanden.
Mit dieser TrackBack url kann der Beitrag verlinkt werden (right-click, copy link target).
Wenn Ihr Blog keine Trackbacks anbietet, kann Ihr Trackback manuell durch dieses Formular eingebaut werden .
Comments
Noch keine Kommentare vorhanden.
Add Comments