Wiki/Akismet
Portal Portal   Forum Forum   Wiki Wiki   News News

Werkzeuge

LANGUAGES

Akismet

Dieser Artikel behandelt den Anti Spam Dienst Akismet, der Spam auf Webseiten (Kommentarspam, Gästebuchspam, Blogspam, Trackbackspam) zuverlässig verhindern kann.

Inhaltsverzeichnis

Was kann Akismet?

Akismet ist der Name eines Dienstes des Wordpress.com Betreibers, um Spam auf Webseiten zu verhindern. Akismet kann aber auch bei beliebigen anderen Webseiten benutzt werden.
Bevor der Beitrag eines Nutzers in einem Forum, einer Kommentarabteilung oder einem Gästebuch gespeichert wird, wird er an die Akismet Server übertragen. Diese entscheiden dann, ob es sich bei dem Beitrag um Spam handelt oder nicht und melden dies dem Webserver zurück. Dieser speichert daraufhin den Nutzerbeitrag oder verwirft ihn.

Wie funktioniert es technisch?

Das (beliebige) Programm (oder Script, wie PHP, Perl, etc.), das dafür zuständig ist, um Beiträge von Benutzern entgegenzunehmen und auf dem Server zu speichern, wird um die Akismet Funktionalität erweitert. Je mehr Informationen das Programm an die Akismet Server übermittelt, desto genauer wird die Einschätzung, ob es sich um Spam handelt, oder nicht. Diese Informationen können der Benutzername, der Beitrag, die angegebene E-Mailadresse, aber auch technische Werte sein, wie der User Agent des Browsers, der Referrer oder die IP Adresse. Akismet liefert dann drei mögliche Werte zurück:

  • true = der Beitrag ist wahrscheinlich Spam
  • false = der Beitrag ist wahrscheinlich kein Spam
  • undef = keine Einschätzung möglich.

Die Server entscheiden (wahrscheinlich) auf Grundlage des Bayes Theorems darüber, ob Spam vorliegt. Es handelt sich also sozusagen um einen lernenden Filter, der immer besser wird, je mehr Webseiten ihn benutzen. Derzeit (Stand August 2008) hat Akismet laut eigenen Angaben 7 Milliarden Spambeiträge auf Webseiten geblockt.

Was muß ich tun?

Um Akismet benutzen zu können, muß die entsprechende Software unterstützt werden. Es gibt zahlreiche Foren-, Gästebuch-, oder Kommentarsoftware, die Akismet unterstützt. Aber man kann auch entsprechende Libraries in seine eigenen Scripts einbauen oder bestehende Software erweitern.

Zusätzlich benötigt man auch einen API Schlüssel. Dies ist ein (kostenloser) Schlüssel, der den Betrieb erst möglich macht. Ihn erhält man, wenn man sich bei Wordpress.com registriert (Dashboard > My Account > Edit Profile).

Sofern die Forensoftware, Gästebuchsoftware oder Blogsoftware nicht ein entsprechendes Plugin anbietet (auf der Seite des Herstellers suchen!), kann man auch Akismet Libraries in eigene Scipte einbauen. Dies soll kurz und bündig nachfolgend beschrieben werden.

Testen kann man die Funktionalität, indem man als Benutzername viagra-test-123 übermittelt. Eine solche Anfrage wird immer mit true beantwortet.

PHP

Besonders einfach lässt sich Akismet in Perl mit MicroAkismet umsetzen. Es handelt sich hierbei um ein fertiges PHP Script, das lediglich in die eigenen Scripts inkludiert werden muß. Eine ausführliche Beschreibung findet man auf der Seite der Autorin.

Perl

Das entsprechende Perl Modul gibt es auf Cpan.org. Für Debian gibt es das Paket libnet-akismet-perl. (bitte ergänzen!)

In einem Perlscript reicht nun folgender Code, um Akismet zu benutzen:

use Net::Akismet;
$ak_ip = $ENV{'REMOTE_ADDR'};
$ak_ua = $ENV{'HTTP_USER_AGENT'};
$ak_rf = $ENV{'HTTP_REFERER'};

my $akismet = Net::Akismet->new(

                       KEY => 'geheimerAPIKey',
                       URL => 'http://www.antispam-ev.de/',
               ) or die('API Key falsch!');

my $verdict = $akismet->check(

                       USER_IP                 => "$ak_ip",
                       COMMENT_USER_AGENT      => "$ak_ua",
                       COMMENT_CONTENT         => "$kommentar",
                       COMMENT_AUTHOR          => "$name",
                       COMMENT_AUTHOR_EMAIL    => "$email",
                       COMMENT_AUTHOR_URL      => "$url"
                       REFERRER                => "$ak_rf",
               ) or die('Antispam Server nicht erreichbar!');

if ($verdict eq "true") {print "Beitrag ist Spam!"};
if ($verdict eq "false") {print "Beitrag ist nicht Spam!"};
if ($verdict eq "undef") {print "Beitrag ist was Komisches! :)"};

Erklärung:

  • KEY ist der API Key von Wordpress.com
  • URL ist die Adresse der Seite, für die der Spam geblockt werden soll.
  • $kommentar, $name, $email und $url sind die Eingaben des Webseitenbesuchers.

Es können auch leere Werte übermittelt werden. Lediglich USER_IP und COMMENT_USER_AGENT müssen übermittelt werden.

Weitere Scriptsprachen

Für weitere Informationen zur Umsetzung der Akismet Filterfunktionalität für Sprachen wie Pyhton, Coldfusion, Java, Ruby, .Net und andere lohnt ein Blick auf die Seite für Entwickler.

Gibt es Nachteile?

Da die Anfrage zuerst an die Akismet Server gesendet und die Antwort abgewartet wird, dauert der Eintrag für den Benutzer einer Website wenige Millisekunden länger. Dies kann durchaus eine spürbare (aber wohl vernachlässigbare) Verzögerung darstellen.
Wie bei jedem lernenden Spamfilter kann es auch hier passieren, daß Spam fälschlicherweise durchgelassen wird oder gewollte Nutzerbeiträge blockiert werden (FalsePositive). Es lohnt sich von daher - sicherheitshalber - Mechanismen einzubauen, die die Nachrichten vorhalten, um diese von Zeit zu Zeit zu kontrollieren. Auch ist es möglich, Akismet falsch klassifizierte Nachrichten zu melden. Allerdings ist diese Funktionalität nicht immer umgesetzt.




Benutzeroptionen:
 Anmelden 

 Spezialseiten 
Diese Seite wurde zuletzt am 19. Juli 2011 um 15:20 Uhr geändert. Diese Seite wurde bisher 19.394-mal abgerufen.
   © 1999 - 2018 Antispam e. V.
Kontakt | Impressum | Datenschutz

Partnerlink: REDDOXX Anti-Spam