Ja, alle oben genannten Funktionen versenden normalerweise E-Mails oder die Möglichkeit Inhalt direkt auf Ihre Webseite zu schreiben. Daher sind sie meist sehr spannende Ziele für Bots.
* Gästebücher
Beiträge in Gästebüchern werden in vielen Fällen direkt auf der entsprechenden Webseite angezeigt. Das ist also Ideal für “Spammer” um Viagra, oder ähnliche, Werbung im Internet zu verbreiten. Man schnappe sich einfach eine Sammlung an Gästebüchern (finden kann man diese zum Beispiel über eindeutige Suchstrings mit Google) und schreibe in jedes Werbung von der gewünschten Seite. Um möglichst schnell möglichst viele Gästebücher abarbeiten zu können werden hier sogenannte Bots verwendet. Dies gehen dann automatisiert auf die Seite und Schreiben in das Gästebuch.
* Feedback-Forumlare
In manchen Fällen kann man damit nur den Seitenbetreiber ärgern, weil dieser immer eine E-Mail erhält wenn das Formular abgesendet wird. Der Seitenbetreiber sollte sich hier auf jeden Fall hüten die eigenen E-Mails als Spam zu markieren. Sonst werden von seiner Webseite bald gar keine E-Mails mehr irgendwo angenommen.
Viel schlimmer ist es allerdings, wenn das Formular eine Option bietet sich eine Kopie auf die eigenen E-Mail-Adresse zusenden zu lassen. Es wird nämlich nirgends abgefragt (wie sollte das auch gehen) ob die Adresse, welche ich dort eingebe auch wirklich meine ist. Das machen sich Spammer natürlich zu nutzen. Sie können ganz einfach eine Beliebige Adresse in das entsprechende Formular eingeben und Ihren eigenen Werbe-Inhalt in das Formular schreiben. Damit geht dann an eine völlig unbeteiligte Person die Werbung des Spammers im Namen der missbrauchten Webseite raus.
Wenn ein Spammer diese Lücke dann einmal gefunden hat, wird auch hier ein Bot/Skript losgejagt der über das Formular dann an Zehntausend von E-Mail-Adressen Spam versendet.
* Tell-a-Friend-Funktionen
Hier ist es meist ähnlich wie bei dem Feedback-Formular. Man kann über die Webseite (meist Internet-Shops) eine E-Mail an eine beliebige Adresse versenden und meist auch noch eigenen Text hinzufügen. Ich denke man erkennt die Gemeinsamkeit mit dem Feedback-Formular.
Aber wie schützt man sich denn jetzt davor?
Das ist eine sehr gute Frage. Beim Gästebuch kann man als Schnellschuss schon einmal die Moderationsfunktion (falls vorhanden) einschalten. Damit muss man als Seitenbetreiber die Gästebucheinträge erst lesen und dann freigeben.
Gerade, wen sich ein Spam-Bot auf der Webseite befindet isst dies aber eher unpraktikabel. Es müsste also eine Möglichkeit geben (und das gilt auch fürs Feedback-Formular und die Tell-a-Friend-Funktion) zu verhindern, dass Bots / Skripte das Formular bedienen können.
Die Lösung sind CAPTCHA’s.
Die Definition auf Wikipedia sagt bereits alles:
CAPTCHA ['kæptʃə] ist ein Akronym für Completely Automated Public Turing test to tell Computers and Humans Apart. Wörtlich übersetzt bedeutet das „Vollautomatischer öffentlicher Turing-Test zur Unterscheidung von Computern und Menschen“. CAPTCHAs werden verwendet, um zu entscheiden, ob das Gegenüber ein Mensch oder eine Maschine ist.
Es sind also Erkennungsmechanismen um Computer und Menschen unterscheiden zu können. Die bekannteste Form ist wohl Buchstaben und Zahlen, die man von einem Bild abschreiben muss um ein Formular absenden zu können. Mittlerweile sind auch angezeigte Rechenaufgaben weit verbreitet. Das ist allerdings nur eine Form von CAPTCHA. Ich beschreibe diese hier zum Schluss, zuvor versuche ich allerdings CAPTCHA’s zu beschreiben, von denen der Besucher selbst nicht mitbekommt (und daran sollte jeder Webseitenbetreiber Interesse haben).
1. Eine ID in jedes Formular
Jedes Formular dass Ihre Webseite ausgibt sollte in ein verstecktes Input-Feld eine ID einspeichern, die als Berechtigung dient Formulardaten abzusenden. Also eine einmalig generierte Nummer die auf dem Server später wieder geprüft werden kann. So kann man schon mal Skripte ausschließen, die gar nicht Ihr Formular aufrufen um die Formulardaten abzusenden. WordPress verwendet hierzu im Backend die wp-once Funktion. Diese wird für jede Formularausgabe neu generiert. Das Formular kann dann nur mit dieser ID abgesendet werden.
2. Zeitliche Erkennung
Ein Skript wird Ihr Formular meist innerhalb weniger Sekunden mehrmals hintereinander aufrufen. Ein guter Mechanismus wäre es also genau das abzufragen. Wenn das Formular innerhalb 2 Sekunden vom gleichen Besucher 3 mal aufgerufen wird. Dann sollte man diesem Besucher den Zugang zum Formular für eine Bestimmte Zeit verweigern.
3. Weitere Tipps
Weitere sehr gute Tipps findet Ihr auf dieser Seite (http://1ngo.de/web/captcha-spam.html ). Auch wenn der Seitenbetreiber sie nicht so nennt, sind die Beschriebenen Mechanismen ebenfalls unter den CAPTCHA-Verfahren einzuordnen.
Interessant finde ich hier vor allem die Arbeit mit den Formular-Feld-Namen. Man vergibt einfach dem Feld für die E-Mail-Adresse den Namen Feld1 und stellt ein verstecktes Feld (nicht hidden field sondern über eine CSS-Datei auf “diplay:none” gestelltes Feld) zur Verfügung das nicht ausgefüllt werden darf. Der Besucher macht das ganze dann richtig, weil er das Feld1 auf der Webseite als E-Mail-Feld angezeigt bekommt und das Feld “email” gar nicht sieht. Ein Bot/Skript dagegen wird in diese Falle tappen. Er füllt das Feld E-Mail mit der E-Mail-Adresse aus und wird damit das Formular nicht absenden können.
4. Evtl. geografische Erkennung.
Anhand der IP-Adresse des Besuchers lässt sich grob sein Standort bestimmen. Diesen Mechanismus nennt man GEO-Lookup und wird von PHP im Geo IP Location-Paket mitgeliefert (http://de3.php.net/manual/de/book.geoip.php). So könnte man in dem Verwendeten Formular schon von Anfang an spezielle Länder ausschließen. Das ganze sollte man allerdings vorsichtig verwenden, wenn die Meisten Besucher Ihrer Seite aus den entsprechenden Ländern kommen, ergibt das natürlich keinen Sinn. Zahlen zu den aktivste Spam-versendenden Ländern findet man über die Google-Suche:
spam länder
Direkt zu Google.
5. Die von Besuchern gehassten Abfragen
Der Vollständigkeit halber schreibe ich auch noch etwas über diese Art von CAPTCHA’s. Es gibt hierzu mittlerweile gute Anbieter, deren Bilder man sehr leicht in ein eigenes Formular einbinden kann. Auch Google bietet so etwas unter dem Namen reCAPTCHA (http://www.google.com/recaptcha) an. Die Einbindung des Codes ist denkbar einfach
<html>
<body> <!-- the body tag is required or the CAPTCHA may not show on some browsers -->
<!-- your HTML content --><form method="post" action="verify.php">
<?php
require_once('recaptchalib.php');
$publickey = "your_public_key"; // you got this from the signup page
echo recaptcha_get_html($publickey);
?>
<input type="submit" />
</form><!-- more of your HTML content -->
</body>
</html>
Auf PHP-Seite muss man dann nur noch abfragen ob das CAPTCHA richtig eingegeben wurde:
<?php
require_once('recaptchalib.php');
$privatekey = "your_private_key";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
"(reCAPTCHA said: " . $resp->error . ")");
} else {
// Your code here to handle a successful verification
}
?>
Was kann man noch tun?
Man sollte sich darüber hinaus noch folgende Fragen stellen:
1. Muss ich das Formular jedem Besucher anbieten? Evtl. reicht es aus, wenn nur registrierte Benutzer das Formular nutzen können. Das gilt vor allem für Tell-a-Friend-Funktionen in Shops.
2. Bei Gästebüchern/Foren: Ist es notwendig dass die Beiträge immer sofort online sind? Ist es mir die Moderationsarbeit Wert eine Spam-Freie Webseite zu haben?
3. Ist es notwendig dass der Besucher sich eine Kopie der Kontakt-Anfrage zusenden lassen kann?
[
Leave A Comment »]