Argh! Ich hatte für den Fahrradverleih von meinem Vater vor einiger Zeit eine Website inklusive einem einfachen Formmailer gestrickt. Lief lange Zeit ohne Probleme reibungslos, nur heute habe ich einen Anruf von ihm erhalten, dass der Provider sich bei ihm gemeldet hatte, dass über den besagten Formmailer Spam gesendet wird!
Klasse, ich mir den Source angeguckt und erst mal nicht verstanden wie. Hmh, zum Glück war Ulf im msn online und konnte mir auf Anhieb viel weiter helfen, weil er mit selbigem Problem auch schon konfrontiert war.
Ich hatte eine Variable nicht abgesichert, so dass über diese dem Script Code über das Formular untergeschoben werden konnte. Aua! Damit euch das nicht auch mal passiert, hier die IMHO wichtigste Absicherung, für vom User übergebene Daten:
string strip_tags ( string str [, string allowable_tags] )
Damit werden alle HTML Tags und php Befehle aus dem Inhalt gelöscht!
Zusätzlich würde ich auch noch alle Schrägstriche entfernen:
string stripslashes ( string str )
Weiter zu empfehlen, wie man Formulardaten absichert, ist u.a. auch folgender Link aus der “FAQ der Newsgroups de.comp.lang.php.*”:
12.11. Prüfe importierte Parameter. Traue niemandem
Zuätzlich habe ich noch eine IP-Sperre davor gestrickt, so dass es so jetzt ohne weiteres nicht mehr möglich ist mehr als eine Mail alle 10 Minuten von ein und dem selben Rechner abzuschicken. O.K. kein hundertprozentiger Schutz, da die Bots wohl mehrere IPs verwenden können, aber ich hoffe es hemmt zusätzlich und so wie es aussieht, ist seit dem Ruhe.