Email aus Formular - Sicherheit
Norbert
- php
0 suit0 dedlfix0 Tom0 Der Martin0 dedlfix
Ich würde gerne ein ausgefülltes Formular, per MAIL an mich weitersenden.
Ichhabe folgende Felder
Name
Mail
Text
wenn alles eingegeben wurde, behandel ich alle Eingaben.
$mail = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $Mail );
...
...
anschliessend sende ich sie weiter.
Kann ich noch irgendwas verbessern, so das kein Schindluder mit meinem Formular gemacht wird.
Norbert
wenn alles eingegeben wurde, behandel ich alle Eingaben.
$mail = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $Mail );
was soll das bringen - im Mail ?
Kann ich noch irgendwas verbessern, so das kein Schindluder mit meinem Formular gemacht wird.
Welche Schindluder?
In einem Formular wird eine Email eingegeben als Absender, und auch sonst was in die einzelnen Felder, diese behandele ich mit eben "preg_replace"
preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $VARIABLE );
so das ich eben bestimmte Wortteile entferne, so das das Formular nicht anderweitig missbraucht wird.
In einem Formular wird eine Email eingegeben als Absender, und auch sonst was in die einzelnen Felder, diese behandele ich mit eben "preg_replace"
preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $VARIABLE );
Ja, ich kann lesen.
so das ich eben bestimmte Wortteile entferne, so das das Formular nicht anderweitig missbraucht wird.
Wofür?
Warum glaubst du, du könntest das Missbrauchspotentiall verringern, wenn du genau diese Zeichenketten kommentarlos entfernst?
Tach!
Kann ich noch irgendwas verbessern, so das kein Schindluder mit meinem Formular gemacht wird.
Siehe Kontextwechsel - E-Mail.
dedlfix.
Hello,
Ich würde gerne ein ausgefülltes Formular, per MAIL an mich weitersenden.
Ichhabe folgende Felder
Name
Textwenn alles eingegeben wurde, behandel ich alle Eingaben.
$mail = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $Mail );
Das ist mMn unnötig, wenn die Eingaben nicht tatsächlich in den Mailheadern landen.
Solange die Eingaben im Mailbody landen, sollten Angaben, wie 'bcc:' usw. unschäflich sein.
Allerdings müssen Header und Mailbody bezüglich Content- und Transferencoding passend behandelt werden, wenn die Mail nicht beim Empfänger ungewöhnliche Zeichen erzeugen oder unterwegs einen Mailserver durcheinanderbringen soll.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo,
$mail = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $Mail );
wie meine Vorredner schon bemerkten, ist es vom Sicherheitsaspekt her egal, was im Mail-Text so alles vorkommt. Wünschenswert wäre nur, dass die Codierung korrekt ist und mit den entsprechenden Angaben aus dem Header zusammenpasst.
Kann ich noch irgendwas verbessern, so das kein Schindluder mit meinem Formular gemacht wird.
Eigentlich genügt es, wenn du nur die Nutzereingaben kontrollierst, die in Headerzeilen landen - typischerweise sind das "Subject:", "To:", und eventuell "From:". Stelle sicher, dass sie keine Steuerzeichen, vor allem keine Zeilenumbrüche enthalten, dann kann eigentlich nichts mehr passieren. Schlimmstenfalls ist dann eine Headerinformation unbrauchbar, aber gleichzeitig auch unschädlich.
Ciao,
Martin
Tach!
Eigentlich genügt es, wenn du nur die Nutzereingaben kontrollierst, die in Headerzeilen landen - typischerweise sind das "Subject:", "To:", und eventuell "From:".
Subject und To sind seitens PHP abgesichert (Steuerzeichen zu Leerzeichen), wenn man nicht eine hornalte 4er Version nimmt ("aktuelle" 4er Versionen sind auch sicher). From und der Rest, der im Parameter $additional_headers übergeben wird, ist noch als kritische Stelle übriggeblieben. Nichtsdestotrotz kann man natürlich Subject und To auf Zeilenumbrüche untersuchen und bei einem Vorkommen die Bearbeitung abbrechen, weil das recht sicher ein Zeichen für einen Spam-Versuch ist.
dedlfix.
Hallo,
Eigentlich genügt es, wenn du nur die Nutzereingaben kontrollierst, die in Headerzeilen landen - typischerweise sind das "Subject:", "To:", und eventuell "From:".
Subject und To sind seitens PHP abgesichert (Steuerzeichen zu Leerzeichen), wenn man nicht eine hornalte 4er Version nimmt
stimmt, hätte ich wissen müssen. Ich erinnere mich an entsprechende Diskussionen, an denen ich auch schon beteiligt war.
"aktuelle" 4er Versionen
Ist das nicht ein Paradoxon? ;-)
Mein Webhoster nervt mich in letzter Zeit schon fast mit der wiederholten Ankündigung, dass PHP4 demnächst endgültig als Wahlmöglichkeit verschwinden wird. Is' ja gut, mach endlich ...
From und der Rest, der im Parameter $additional_headers übergeben wird, ist noch als kritische Stelle übriggeblieben. Nichtsdestotrotz kann man natürlich Subject und To auf Zeilenumbrüche untersuchen und bei einem Vorkommen die Bearbeitung abbrechen, weil das recht sicher ein Zeichen für einen Spam-Versuch ist.
Ja, der Hinweis ist nicht neu, aber berechtigt.
Ciao,
Martin