Der Bau einer Spambot-Falle

Mittlerweile habe ich keine Lust mehr, die .htaccess manuell per Hand zur Verbannung von Spambots zu Pflegen. Im Internet bin ich auf eine gute Idee gestoßen, mit der man Spambots mit einer Falle einfangen und für immer von der Seite verbannen kann. Das hört sich ein wenig nach spannender Jagd an. Ist es auch.

Denn diese Spambots kommen irgendwann zu irgendwelchen Zeiten und verursachen einen großen Traffic und damit natürlich auch Webhosting-Kosten. Und was sie noch für einen Schaden anrichten (Datenklau o.ä.) kann man nur vermuten.

Zeit etwas automatisiertes zu tun. Hier meine Wunschliste für eine Spambot-Falle:

  • Zunächst möchte ich identifizieren, welcher Zugriff von einem Spambot stammt
  • Falls ich einen Spambot identifiziert habe, möchte ich seinen User Agent per .htaccess sperren
  • Zusätzlich möchte ich die User Agents der Spambots in einer Datei festhalten, um zu vergleichen, ob er ein weiteres Mal zuschlägt.
  • Wenn ja: Lasse ich ihn 10 sek. warten und zeige ihm anschließend seine eigene IP als Hyperlink. Soll er damit machen, was er will 🙂
  • Wenn nein: werde ich den User Agent nach ein paar Tagen aus der .htaccess löschen
  • Weiterhin will ich per E-Mail darüber informiert werden, wenn ein Spambot in die Falle gegangen ist
  • Und der Clou: ALLES AUTOMATISCH ! Ich will nur noch über die Aktionen informiert werden.

Mal sehen, ob`s klappt…

Die Falle

Wann kann man einen Spambot als solches identifizieren ? Ich habe viele Ansätze widerworfen, bis auf einen: Alle Robots verfolgen Hyperlinks und speichern diese. Geben wir ihm einen Link, den gute Robots (Google Bot, MSN Bot, …) laut Standard ignorieren sollen. Sprich: Erzeuge ein Unterverzeichnis, welches in der robots.txt  für Robots ausdrücklich verboten ist und verlinke (aus Versehen und unauffällig – Ist schließlich eine Falle) von der Startseite auf dieses Verzeichnis.

Dann passiert folgendes:

Gute Robots sagen: „Halt ! Privatsphäre. Hier habe ich nichts zu suchen.“ Und ignorieren dieses Verzeichnis.

Böse Spambots sagen: „Mir doch egal ! Umso spannender.“ und crawlen unerlaubt das verbotene Verzeichnis.

In dem Verzeichnis muss natürlich eine index.php liegen, die dann den Spambot identifiziert und weitere Aktionen (siehe Wunschliste) einleitet. Ich gehe folglich davon aus, dass jeder Robot, der die robots.txt missachtet, für die Ewigkeit von der Seite verbannt wird und bei zukünftigen Besuchen ein „Error 403 – Forbidden!“ zu sehen bekommt. Ist das gerecht ? Ich denke, das ist eine logische Konsequenz. Fangen wir an…

Technische Umsetzung mit PHP (ab jetzt Grundkenntnisse in .htaccess und PHP gefragt)

1. Unterverzeichnis xyz anlegen, welches folgende Dateien enthält:

  • 1×1.gif (1×1 Pixel Gif-Bild – Ist für Besucher unsichtbar auf der Startseite)
  • blacklist.dat (chmod 777 – hier werden die User Agents gespeichert)
  • blacklist.php
  • index.php

2. Die robots.txt wird zusätzlich erweitert um

User-agent: *
Disallow: /xyz/

3. die Startseite (bei CMS meißt als Template editierbar) um einen unsichtbaren Link erweitern. Dies ist dann die Spambot-Falle:

4. index.php und blacklist.php bearbeiten und für die eigene Serverumgebung anpassen.

Hier alle Dateien als Download: spambot_trap.

Die Grundidee stammt von http://www.kloth.net/internet/bottrap.php. Die automatische .htaccess-Erweiterung und einige andere Funktionalitäten habe ich selbst umgesetzt… Mal sehen, was so die nächste Zeit passiert.

Achso: Die Funktionalität, die lange nicht wiedergesehene Spambots automatisch aus der .htaccess löscht, ist noch nicht umgesetzt. Folgt vielleicht noch…

JAF-CMS – erinnert stark an Joomla

JAF CMS ist ein flat file Content Management System für kleinere private Sites ohne Datenbank-Pflicht. Es ist einfach zu installieren, zu verwenden und zu erweitern. Ein WYSIWYG-Editor ist ebenfalls enthalten. Skins und Templates werden unterstützt.

Die Webseite von JAF-CMS, welche das CMS ebenfalls verwendet, macht einen ziemlich professionellen Joomla-ähnlichen Eindruck. Zielgruppe sind Privatanwender, die mal eben schnell eine Site (z.B. auf kostenlosem Webspace, wo oft keine Datenbanken angeboten werden) aufsetzen wollen. Für eine erfolgreiche Installation sollen nicht einmal Programmierkenntnisse nötig sein.

Einige Clous sind:

  • Integrierte Gallery
  • Dynamische Generierung von Navigationsmenüs
  • In nächsten Release: Mehrsprachigkeit
  • Integrierte Shout-Box
  • Datum-Navigator
  • Blogmöglichkeit

 

Contray – CMS in Perl/CGI

Contray ist laut Webseite „eines der  meistgenutzten, volldynamischen Perl/CGI – Content Management Systemen (CMS)“. Die intuitive und unkomplizierte Bedienung sollen den Umgang mit dem System einfach machen. Alle Funktionen, die ein modernes Webseiten-Management benötigt, sind integriert. Mehr als 1800 Installationen weltweit und 150 Reseller.

Kostenpunkt: 189.00 € (08.02.2005)

phpCMS – flexibel und flott

phpCMS:

phpCMS ist ein Content Management System, das insbesondere durch geringe Systemansprüche, hohe Leistung und vor allem seine Flexibilität überzeugt.

Dadurch eignet sich phpCMS sowohl für kleine private Websites als auch für komplexe Firmenauftritte und stark frequentierte Websites inkl. Einbindung von Webservices und externen Fremdapplikationen.

Zugegeben – die Flexibilität von phpCMS macht Einsteigern das Leben nicht immer leicht – doch für Profis, die beim Erstellen einer Website mehr wollen, als starre Template-Blöcke zusammen zu klicken, bietet phpCMS viele Freiheiten, um der Kreativität des Designers freien Lauf zu lassen. Nicht umsonst verwenden auch einige Webdesign-Agenturen phpCMS für ihre Websites.

Und das Beste ist: phpCMS wird als Open Source Software (GPL-Lizenzmodell) entwickelt und ist kostenlos erhältlich – kosteneffizienter kann ein CMS nicht sein.

siteman – einfach und mächtig

siteman:

Siteman ist ebenfalls ein Content Management System (CMS), welches sehr einfach zu installieren und zu nutzen ist. Wer etwas Erfahrung mit einer Homepage hat, kann innerhalb Minuten eine komplette Site damit aufbauen. Die Daten werden in einer txtSQL abgespeichert.

MiniCMS und Redakta – gut geeignet für Newssites

MiniCMS und Redakta:

Ein auf PHP basiertes MiniCMS für kleinere Sites. Mini-CMS hat seinen Namen daher, da es kein wirklich vollständiges CMS darstellt mit dem sich eine ganze komplexe Site verwalten läßt. Mini-CMS ist eigentlich eher eine Art kleines Newssystem, dessen Funktionalität darin besteht, eine Reihe von Artikeln auf einer Website einfach über eine Browseroberfläche zu aktualisieren.

Webapp – ein Perl-Portal-System

Webapp:

 

WebAPP (Web Automated Perl Portal System) ist, wie der Name schon sagt ein auf Perl basiertes CMS ohne Datenbank, mit Support für Foren, Blog-Funktionalitäten, Themes  und mehrsprachiger Funktionalität.

CMSimple – CMS in nur 50kByte

CMSimple:

CMSimple ist eines der kleinsten CMS, welches ich kenne: Nur 50 Kbyte groß !

Trotz 50 KByte PHP-Code nutzt CMSimple ebenfalls einen WYSIWYG-Editor für die Content-Erstellung und ist gut auf kleineren privaten Sites nutzbar.

Eine Empfehlung der Redaktion „Internet Professionell“ 7/2004