Seite 1 von 1

Verfasst: 13.12.2006, 15:38
von mirko
das Script auf der Seite www.supermailer.de/smscript.htm neu erstellen lassen und nur noch das neue Script verwenden.

Verfasst: 13.12.2006, 15:16
von wuwu
Hallo

ich bekam von meinem Provider eine Abmahnung, da das Script newsletter.php offensichtlich für Dritte zum spammen geeignet ist. Wie weiß ich nicht genau. Das newsletter.php, das ich einsetze ist ca 1,5 Jahre alt. Ist in der aktuell abrufbaren Version etwas an der Sicherheit geändert worden?

Originaltext:
----------------------------------------------------------------------------
wir mussten leider feststellen, dass Ihr Skript

************/newsletter.php

zur Versendung von Massenmails durch Dritte mißbraucht wurde. Dadurch kam es zudem zu einer Überfüllung unserer Mailqueue, wodurch andere Kundenmails nur mit großer Verzögerung zugestellt wurden. Wir mussten das Script daher im Interesse aller umbenennen und somit deaktivieren.

Überprüfen Sie bitte Ihr Script auf Sicherheitslücken. In den meisten Fällen werden die Scripte mit modifizierten Parametern aufgerufen, in denen entweder die Zieladresse geändert wird, oder durch das Einfügen von Umbruchzeichen zusätzliche Bcc-Zeilen/Empfänger eingefügt werden.

Am besten, Sie fügen alle Headerangaben hartkodiert ein (z.B. From, To, Subject usw.), so dass diese nicht durch falsche Parameter modifiziert werden können. Falls dies in Ihrem Fall nicht möglich ist, müssen (!) Sie die übergebenen Parameter auf Herz und Nieren prüfen. E-Mails müssen mit Regulären Ausdrücken auf syntaktische Korrektheit geprüft werden. In PHP geht das z.B. mit folgendem, beispielhaftem Ausdruck:

preg_match(\\\'/^[a-z0-9_\\\\.\\\\-]+@[a-z0-9\\\\.\\\\-]+\\\\.[a-z]{2,}$/i\\\', $_POST[\\\'email\\\'])

Dieses Suchmuster ist zwar nicht perfekt, filtert jedoch schon 99% aller Manipulationsversuche heraus.

Zudem müssen (!) alle Variablen, die Sie im Mailheader verwenden (z.B. From, Subject, Name, To usw.) auf Umbrüche geprüft werden. Wird in den Variablen ein Umbruch entdeckt, so liegt mit Sicherheit ein Hackversuch vor, da ein solches Umbruchzeichen über ein normales Input-Eingabefeld nicht eingegeben werden kann und der POST-Request definitiv gefälscht wurde. Folgendes Codebeispiel in PHP prüft die POST-Variable \\\"email\\\" auf Umbrüche und beendet das Script mit einer Fehlermeldung an den Spamer:

if ( strstr($_POST[\\\'email\\\'], \\\"\\\\n\\\") ) die (\\\"Forget it, Spamer!\\\");

Wenden Sie diese Prüfung auch auf alle anderen Variablen an, die im Mailheader verwendet werden.
Bei Verwendung des PHP-Befehls mail() sind die Parameter 1,2,4 und 5 betroffen:

mail( _BETROFFEN_ , _BETROFFEN_ , Mailbody [, _BETROFFEN_ [, _BETROFFEN_]])