Mailinglisten-Archive |
Armin Briatta wrote: > Hallo Yannik, > > > Mir geht es darum, Zeilenumbrüche abzufangen, die über eventuell > manipulierte Formulare ankommen. Diese haben ja bei E-mail-Adressen, > Namen, Ortsangaben oder Ähnlichem nichts zu suchen. Das im Text der Email Zeilenumbrüche vorkommen ist ja normal. Ich gehe mal davon aus, dass wir nur von der Emailadresse reden, die nachher im From-Header stehen soll (eine Ortsangabe erscheint mir aktuell nicht schlüssig). > > Wenn ich nun eine E-mail als Bestätigung für den Empfang der > Formulardaten an den Absender schicke, möchte ich sicher sein, dass > keinerlei Manipulationen des mail-headers stattfinden können. > > Zur Zeit prüfe ich alle Eingaben in einzeilige Felder wie folgt: > > $_correct_string = stripslashes ($_original); > $_correct_string = strip_tags($_correct_string); > $_correct_string = trim($_correct_string); > $_correct_string = htmlspecialchars ($_correct_string, ENT_QUOTES, > "UTF-8"); > $_correct_string = urldecode($_correct_string); Es macht zwar Sinn zu überprüfen ob die Emailadresse gültig ist, aber welches Benehmen von deinem Skript erwartest du, wenn die Emailadresse ungültig ist? Ich würde jedenfalls wollen, dass das Skript mit einer Fehlermeldung sofort abbricht und nicht noch versucht die Emailadresse so lange zu ändern, bis sie von der Syntax her theoretisch richtig ist. Daher würde ich zu so etwas greifen: if (!preg_match('/^\S+$/', $emailadresse)) exit('Emailadresse ist doof'); (Über den genauen regex könnte man jetzt noch eine Weile diskutieren, die Version hier wäre wohl die einfachste die noch sicherstellen sollte, dass es nicht möglich ist zusätzliche header zu spezifizieren). Natürlich kann man noch ohne Ende Müll eingeben, aber mir fällt nichts ein, womit man ernsthaft Schaden anrichten könnte... Deine Befehle machen zwar einige lustige Sachen, mit denen du eventuell etwas Verwirrung stiften kannst, aber ein Barriere gegen irgend eine Arte von Angriff kann ich ehrlich gesagt darin nicht erkennen. > > Dann prüfe ich die einzeiligen Felder noch per regulärem Ausdruck, je > nach Feld strenger oder lockerer. Jo, das reicht dann auch. Oder sagen wir mal lieber: Das ist der interessante Teil. > > Viele Grüße > Armin Yannik
php::bar PHP Wiki - Listenarchive