Tag Archives: Spam

Aktuell sind E-Mails aufgeschlagen wie diese hier:

Final Reminder: Domain cancellation notice
You have 1 domain name registration pending.
RENEW NOW

Im Betreff steht Ihr Domain und sieht somit wichtig aus. Die Mails kommen mit einer echten Mail-Adresse. Im Glauben das dies wichtig sei (meine Domain geht bald nicht mehr), kaufen Sie aber nur Suchmaschineneinträge. Diese Suchmaschineneinträge sind aber wertlos, da diese Einträge nach Bezahlung bewertet werden. Also nicht das beste Ergebnis, sondern der am meisten zahlt. Ihre Kontaktdaten hat man aus der WHOIS-Datenbankanfrage ermittelt.

Sofern Sie eine Mail von dieser Art “Domain cancellation notice” erhalten haben, sollte diese Mail sofort gelöscht werden.
Auf keinen Fall auf „RENEW NOW“ klicken!

Die meisten, die so eine Mail kriegen, sind verunsichert, da dies ausschaut, als wäre dies von der Zuständigen NIC.
Sollten Sie unsicher sein, können Sie als Kunde kostenlos Kontakt aufnehmen. Ich helfe gerne weiter!

Hier noch ein Screenshot, wie dies aussehen kann:

Spam kosten Geld, Zeit und Nerven!

Spam bezeichnet das massenweise Auftreten von unerwünschten Email und Newslettern, die nicht angefordert wurden. Der Kampf gegen Spam ist mit viel Aufwand und auch Kosten verbunden. Vermeiden kann man Spam nur durch Geheimhaltung der eigenen Email-Adresse. Unsere Spamfilter können nie 100% Spam erkennen, darum können Sie als Kunde mir Ihre Spam über das Kontakformular oder über info@… mail weiterleiten. Wenn Sie E-Mail-Nachrichten weiterleiten, stellen Sie sicher, dass die kompletten Zeilen aus dem Nachrichtenkopf (Header) enthalten sind. Ansonsten ist eine Rückverfolgung kaum möglich. Unter einem e-Mail-Header versteht man ein Datenprotokoll des genauen Wegs, auf dem eine e-Mail den Eingangsrechner zu meinem Mailserver erreicht hat. Das Mailprogramm zeigt den Header nicht gleich an, weil die Angaben den Otto-Normalverbraucher nicht interessieren. Fast jedes Mailprogramm kann jedoch auf Anfrage den Header einer Mail anzeigen.

Bei Apple Mail markieren Sie die betroffene E-Mail in der Listenansicht. Wählen Sie dann im Menü „Darstellung“ unter dem Menüpunkt „E-Mail“ die Option „Lange Header“

Bei MS-Outlook öffnet man, nachdem man die Mail geöffnet hat, mit rechter Maustaste das „Eigenschaften“-Menü und wählt „Kopfzeileneinträge anzeigen“.

Bei Thunderbird drückt man die Tastenkombination „STRG“+“U“ („Nachrichten-Quelltext anzeigen“).

So können Sie mit PHP Kontaktformulare vor Spam schützen

Kontaktformulare sind auf fast jeder Homepage eingerichtet, leider werden die Kontaktformulare häufig missbraucht. Der Grund ist hierfür oft eine unsichere Programmierung, die einfach ohne Überprüfung der Eingabe eine E-Mail sendet.

Hier gibt es kleine Lösungen, um Missbrauch zu vermeiden:

Ein Bot verwendet immer BB-Codes, obwohl das Kontaktformular keinen BB-Code Editor hat.

Dies kann so verhindert werden:
if(stristr($nachricht,"[link=") || stristr($nachricht,"[url=") || stristr($nachricht,"a href=")){
echo "Bitte kein BB-Code verwenden.";
}

Formulare werden per POST oder GET übertragen, per Log konnte ich vestellen das auch GET-Werte an die URL angehängt wurden.

Sollte Ihr Formular nur per POST übertragen, können Sie sich z.B. so schützen:
if(count($_GET)>0){
//Spamfalle: Formular sendet nichts per GET sondern POST
exit("Wegen Spam-verdacht abgelehnt (GET)");
}

Mit Count wird das Array $_GET gezählt, dies sollte 0 sein, da wir ja kein GET verwenden.
Anders rum geht es natürlich auch, wenn kein POST verwendet wird:

if(count($_POST)>0){
//Spamfalle: Formular sendet nichts per GET sondern POST
exit("Wegen Spam-verdacht abgelehnt (GET)");
}

Zeitdauer für das Ausfüllen und Absenden des Formulars:
Eine Maschine ist wesentlich schneller als ein Mensch, dies kann man sich zu nutze machen.
Wird ein Formular unter 10 Sek. ausgefüllt, kann man davon ausgehen, dass dies kein Mensch war.

Zum Formular einen neuen versteckten Button hinzufügen:
echo '<input name="time" type="hidden" value="'.time().'" />';

Wird das Formular auf der Webseite jetzt aufgerufen, steht im Button ein aktueller Timestamp (Zeitstempel), wir wissen also wann das Formular geladen wurde.

if ( isset($_POST['time']) && is_numeric($_POST['time'])) {
$posted = intval($_POST['time']);
$sendezeit = (time() - $posted);
if ($sendezeit < 10 || $sendezeit > 36000) {
echo "Mail kann gesendet werden";
}
else {
echo "Wegen Spamverdacht abgelehnt!";
}
}

Bots sind dumm, nutzen Sie dies aus:
Spambots füllen alle Felder eines Formulars aus, selbst wenn Sie nicht zu sehen sind.

<input style="display: none;" title="Homepage eintragen" name="webseite" type="text" />
<input style="display: none;" title="E-Mail eintragen" name="email" type="text" />

CSS display:none sagt, dass dieses Feld nicht erscheinen soll, es ist also nur noch im Quelltext.
Bots sehen aber nur den Quelltext, Grafiken, Javascripte und Videos können nicht bzw. sehr schlecht ausgewertet werden.

Jetzt muss nur geprüft werden, ob hier auch nichts drin steht:
if(!empty($_POST['webseite']) || !empty($_POST['email'])){
exit("Spam!");
}
else {
echo "kein Spam";
}

Überprüfen der Syntax von E-Mail-Adressen:
E-Mail Adressen sollten auf Gültigkeit überprüft werden, z.B. gehört in jede e-mail Adresse auch ein at-zeichen (@), punkt, tld,…

if ( ! preg_match('/^[a-z0-9_\.\-]+@[a-z0-9\.\-]+\.[a-z]{2,}$/i', $_POST['email']) ) die ("Die E-Mail adresse ist ungültig!");

Entfernen Sie alle „Cc:“ (Carbon copy) oder „Bcc:“ (Blind Carbon Copy) aus Ihrer Variablen:
Mit PHP können Sie es so erreichen:

$absender = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['absender'] );
$nachricht = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['nachricht'] );
$betreff = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['betreff']);
$nachname = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['nachname']);
$vorname = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['vorname']);
$telnr = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $_POST['telnr']);

Überprüfen Sie auch die Gültigkeit der E-Mail Adresse vom Absender:
if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$Absender))
{
echo "Sie haben keine richtige E-Mail Adresse eingegeben!";
}

Anmerkung:
Oft werden auch CAPTCHA und Rechenaufgaben im Formular verwendet, davon kann ich nur abraten. Captcha sind oft sehr schlecht zu lesen und Rechenaufgaben lösen kann ein Bot auch. Das einzige was man damit erreicht, ist seinen Besucher zu verärgern.