Hallo,
Nach dem SQL Injection Thema bin ich zufällig auf das Email Injection Thema gestossen und muss mir leider wieder Gedanken um die Websicherheit machen.
http://www.thesitewizard.com/php/protect-script-from-email-injection.shtmlsteht, dass man sowas einbauen sollte preg_match , damit es geschützt ist.
es gibt noch viele andere Möglichkeiten. Es geht um das Entfernen von Zeilenumbrüchen, nicht um die Anwendung von preg_match().
Meine Fragen:
- Wo genau? Mein Kontaktformular besteht aus verschiedenen Bestandteilen, zB Kontakt.php, sendMail.php . Ich habe in beiden PHP Seiten nichts von preg_match gefunden.
Ja und?
- Den Endeffekt von preg_match habe ich verstanden (=Schutz),
Nicht preg_match() ist relevant, sondern das Entfernen von Zeilenumbrüchen aus den Werten, die in E-Mail-Header wandern können.
aber wie genau das agiert/funktioniert habe ich noch nicht verstanden. Kann mir einer das mal simpel erklären?
Wenn nicht gerade der komplizierte Folding-Mechanismus gemäß RFC 822 verwendet wird, haben Zeilenumbrüche in den Headern für Absendername und E-Mail-Adresse nichts zu suchen. Normalerweise kommt nach einem Zeilenumbruch der nächste Header und durch einen eingeschmuggelten Zeilenumbruch kann der Angreifer zum Beispiel bcc-Header mit hübschen Empfängerlisten einbauen ...
Wenn in einzeiligen Eingabefeldern Zeilenumbrüche eingegeben wurden, sinkt die Wahrscheinlichkeit, dass ein Mensch das Formular korrekt und in bester Absicht ausgefüllt hat auf einen zu vernachlässigenden Wert. Mit an Sicherheit grenzender Wahrscheinlichkeit war es ein Bot oder jemand in böser Absicht und Du verlierst nichts, wenn Du seine Eingaben einfach verwirfst. Siehe dazu diesen Archivthread.
Ach ja, ohne preg_match() :-)
Freundliche Grüße
Vinzenz