Apps zur Kindersicherung auf Android

Für meine kleineren Kinder betreibe ich auf allen PCs die Kindersicherung von Salfeld. Das funktioniert, solange sie noch klein sind, auch ganz gut. Wenn sie aber nun größer werden, lassen sich Teenager bekanntlich nicht mehr so gern einschränken und schaffen sich dann ihre eigenen Lösungen. Mein großer (12 Jahre) hat mich zuletzt damit überrascht, dass er mein Administrator-Konto komplett gelöscht und sich seinen eigenen Benutzer dafür eingerichtet hat. Digital Natives scheinen zur Verblüffung der Eltern wirklich schnell IT-Kompetenz aufzubauen. „Apps zur Kindersicherung auf Android“ weiterlesen

Deutlich weniger Referral Spam

Nachdem ich (wie berichtet) in der .htaccess einige Ausschluß-Kriterien hinzugefügt habe, ist der Referral Spam schon deutlich zurückgegangen. Nun habe ich aber eine etwas elegantere Abweisung von Referral Spammern für die .htaccess im Internet gefunden, die auch Wildcards akzeptiert.

Die neue Variante ist recht einfach zu gebrauchen und filtert den Zugriff auf meine Webseite anhand des Referrers des Besuchers aus. Kommt der Besucher von einer Website, die in meiner Ausschluß-Liste stehen, wird der Besucher abgewiesen und erhält einen Error 403 – Forbidden ! Die Ausschlußliste wird nun mit Wildcards zusammengesetzt.

Die unten stehende .htaccess-Anweisungen filtern dann u.a. poker.de und poker4u.com aus.

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 Email 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

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…

Referral Spammer müssen draußen bleiben

Referral Spammer nutzen häufig die Funktion von Weblogs oder CMS Systemen, Referrals als Hyperlinks anzuzeigen. Diese Funktion, die dem Webmaster zeigen soll, wer auf seine Webseite verlinkt, wird von Referral Spammern dazu misbraucht, die eigene Linkpopularität zu steigern. Sie erzeugen einfach künstlichen Traffic (und damit Kosten) auf meine Seite und werden dann in meinen Referrals gelistet.

Kurz: Es wird ein Link angezeigt, von welcher URL die letzten Besucher kamen. In meinem Fall hat das Problem ein Mambo-Modul „Latest Referrals“ erzeugt. Der Referral Spammer braucht nur einmal meine Website aufzurufen, um dann in meiner Liste mit den letzten Besuchern mit seiner URL aufzutauchen. Unbedarfte Besucher gelangen dann von meiner Seite auf Seiten, die sie garnicht besuchen wollten. Und wenn der Referral Spammer den Aufruf meiner Website automatisiert ablaufen lässt, hat er einen permanenten Link zu seinen obszönen Seiten.

Das schlimmste jedoch ist, dass Suchmaschinen solche Scharlatane nicht erkennen und diese -meißt obszönen Seiten- auch noch als vielbesucht bewerten und dafür belohnen.

Man kann versuchen, diese Art von Spam mit verschiedenen Mitteln zu bekämpfen. Probiert habe ich 3 Möglichkeiten. Wobei ich die 3. Variante recht komfortabel finde.

Blockieren des Zugriffs anhand seiner eigenen Kennung (HTTP Referrers)

Hier ein Ausschnitt meiner .htaccess. Beachte aber, dass ModRewrite von Apache eingeschaltet sein muss, damit dies funktioniert.

RewriteEngine On
RewriteBase /

#
# Rules for URL/Referral Spam
#
# allow Referrals from Search Engines:
RewriteCond %{HTTP_REFERER} !.*goermezer\.de/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://([^/]+)google\..*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://([^/]+)altavista\..*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://([^/]+)yahoo\..*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://([^/]+)msn\..*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://([^/]+)a9\..*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://([^/]+)lycos\..*$ [NC]

# Conditions for don`t wanted Referrals
RewriteCond %{HTTP_REFERER} ^.*loans.*$ [OR]
RewriteCond %{HTTP_REFERER} ^.*porn.*$ [OR]
RewriteCond %{HTTP_REFERER} ^.*pharmacy.*$ [OR]
RewriteCond %{HTTP_REFERER} ^.*viagra.*$ [OR]
RewriteCond %{HTTP_REFERER} ^.*extreme.*$ [OR]
RewriteCond %{HTTP_REFERER} ^.*casino.*$ [OR]
RewriteCond %{HTTP_REFERER} ^.*onlinegamblingcasino.*$

# Block users which has one of above keywords in the URL by a http 403 (Forbidden)
RewriteRule .* – [F,L]

Blockieren des Zugriffs anhand der IP oder des Rechnernamens

Dies wird am Besten auch in der .htaccess umgesetzt:

Blockieren des Rechners mit dem Namen pokermoney.com:

<Limit GET>
order allow,deny
allow from all
deny from pokermoney.com
</Limit>

Blockieren des Rechners mit der IP 123.45.67.89:

<Limit GET>
order allow,deny
allow from all
deny from 123.45.67.89
</Limit>

Blockieren des Zugriffs anhand der Kennung (HTTP Referrers) kombiniert mit Wildcards

Diese Variante blockt jeden Besucher, der einen Referrer verwendet, der igendwie die Wörter poker, credit oder money beinhaltet. Und da diese Themen absolut garnichts mit meinen Webseiten zu tun haben, kann ich fast ausschließen, dass ich unnötig Besucher herausfiltere.

<Limit GET>
order allow,deny
allow from all
deny from env=spammer
SetEnvIfNoCase Referer „.*(poker|credit|money).*“ spammer
</Limit>

Probleme mit Referral Spam

Da in letzter Zeit 95% des auf dieser Site erzeugten Traffics durch Referral Spammer verursacht werden, habe ich mich entschlossen, etwas dagegen zu tun:

Für die jenigen, die nicht wissen, was ein Referral Spammer ist: Das sind Robots, Spider, oder einfach dreiste Menschen, die meine Besucher auf ihre eigenen Webseiten bekommen wollen, um ihnen dann etwas zu verkaufen, oder kostenpflichtig gewisse Anatomien zu zeigen…

Um dieses Problem in Griff zu bekommen, habe ich meine .htaccess modifiziert und blockiere alle Zugriffe, die von bestimmten Websites (eine von mir gepflegte URL-Liste) aus zugreifen.

Und siehe da: Von durchschnittlich 100 permanenten Zugriffen sind nur noch die echten Besucher übrig geblieben 🙂

Deitailierter und ein .htaccess-Beispiel im folgenden Artikel.