komische Mails bei Einsatz des Mail Befehls

jean luc

Mitglied
Hallo !
ich versende über den mail Befehl den Eintrag in meinen Newsletter.
Der Code dazu sieht so aus:

mail("demo@2VorAnpfiff.de","Newsletter Eintrag",$msg,"From: Newsletter Formular <demo@2VorAnpfiff.de>");


Seit einiger Zeit erhalte ich nun e-Mails mit offensichtlich falscher Adresse, wie so etwas:
"the7178@2voranpfiff.de"

Die Endung der Adresse ist dabei immer meine eigene. Außerdem erhalte ich e-Mail mit Inhalten, die z.B. so aussehen:


NAME: in4717@2voranpfiff.de
Vorname: smoked
Content-Transfer-Encoding: quoted-printable
X-Mailer: QUALCOMM Windows Eudora Version 5.0.2
Content-Type: text/plain
X-Bacon: d118e23984d4e03e8d6becf44be74949
Subject: given the uropean
cc: higang@aol.com,jeenfive@aol.com,topcopl2@aol.com,cpfasc@aol.com,
susanschoenfeld@aol.com,writetocwl@aol.com

ham or most other purposes, under law, a ham is a cured hind leg of pork th=
at is at least 20.5 protein (not
.

E-MAIL: in4717@2voranpfiff.de
Verein: in4717@2voranpfiff.de
Wie sind Sie auf Easy2Coach aufmerksam geworden?
Suchmaschine: in4717@2voranpfiff.de
Promotion: in4717@2voranpfiff.de
Pressetext: in4717@2voranpfiff.de
Sonstiges: in4717@2voranpfiff.dein4717@2voranpfiff.de
Funktion: in4717@2voranpfiff.de
Thursday - 16.11.06 - 13:35:33



Kann mir jemand sagen warum das so ist und was ich dagegen machen kann?
Danke und viele Grüße
 
Hallo!

Auf den ersten Blick würde ich eher sagen dass es ein "Catch all" Problem ist.
Ich habe mal ganz doof geguckt als ich eine Mail mit meiner eigenen Domain als Absender bekommen hatte. ;)
Nur wurde mir die Catch all Funktion stillschweigend von meinem Hoster "untergeschoben" und zu dem auch noch aktiviert. :eek:

Ich würde mich also erstmal bei Deinem Hoster darüber schlau machen ob Du auch die Catch all Funktion hast und ob diese aktiviert ist.

Ansonsten solltest Du mal Dein Script zeigen..... evtl. sind da ja auch Sicherheitslücken drin.

Gruss Dr Dau
 
Nein, das ist eine Methode Spam über ungesicherte Email-Formulare zu verschicken.

Von Dr.Web:
Die "E-Mail-Header-Injection" ist eine Methode, E-Mail-Kopfzeilen über ein Kontaktformular-Skript in eine E-Mail zu "injizieren". Spammer können auf diese Art Kontaktformular-Sendeskripte zum massenhaften Verteilen von Spam missbrauchen. Besonders ärgerlich für den Besitzer des Kontaktformulars ist, dass Spammer seine E-Mail-Adresse als Absender des Spams angeben können. Das geht zwar auch ohne ein fehlerhaftes Kontaktformular - nur in diesem Fall würde der Spam technisch gesehen tatsächlich vom Besitzer stammen.
 
Mit Regexp nur explizit das erlauben was du auch haben möchtest.
Vor allem \r\n (Trennzeichen für Emailheader) ist dabei in allen Feldern auszuschliessen oder zu entfernen (und zwar sowohl \r als auch \n, einzeln), die in den Emailheader übernommen werden.
 
Hallo!

Alles klar!

Bei mir wird einfach per regex kein \ zugelassen außerdem strip_tags, nl2br und trim eingesetzt. Dürfte also ausreichen, werd ich mir aber nochmal genauer ansehen.

Grüße

Martin
 
Hallo ,

heist das, dass ich den e-Mail Text somit immer manuell mit Regexp durchsuchen muss,
oder gibt es eine Möglichkeit, so etwas generell zu verhindern?

Grüße Simon
 
Hallo,

wie könnte denn so eine Prüfung konkret aussehen, bin da leider Anfänger.
Wie kann ich denn den e-Mail Header auf unerlaubte Zeichen durchsehen?

Grüße Simon
 
Alles was irgendwie in den 4. Parameter von mail() gelangt muss unbedingt validiert werden (der Rest auch!).

Ganz simpel, wenn du die Eingaben schon vorher validierst reicht es aus einen str_replace("\n", "", $var) und einen str_replace("\r", "", $var) zu machen.
Wenn es Emails sind benutz einen passenden Regexp (der keine Whitespaces am ende zulässt).
 
OK, das verstehe ich.
ich benutze aber folgenden Code:
mail("demo@2VorAnpfiff.de","Newsletter Eintrag",$msg,"From: Newsletter Formular <demo@2VorAnpfiff.de>");

$msg ist dabei meine einzige Variable, wie soll ich da den 4. Parameter validieren. Oder meinst du, dass das Problem bei mir in dieser Variable $msg liegt? ich werde $msg auf unerlaubte Zeichen prüfen und gucken, ob es weiterhin auftritt.
 
Zurück