Frage

Ich bin Internierung für eine NGO in Indien (Seva Mandir, http://sevamandir.org ) und zu versuchen, ihre gebrochen zu beheben Box „Newsletter anmelden“. Da das Personal nicht sehr anspruchsvoll ist und unser Web-Host ist nicht groß, entschied ich mich per E-Mail der entsprechenden Daten an die Publikationen Person zu senden (), anstatt es in einer MySQL-Datenbank zu speichern.

Ich weiß, dass es am besten zu behandeln Benutzereingabe als bösartig, und ich habe die SO-Foren für Beiträge relevant zu entkommen Benutzerdaten für das Senden in einer E-Mail-Nachricht durchsucht. Ich weiß, dass die Daten entwertet werden sollten; Was soll ich über sein besorgt und was ist der beste Weg, um die Eingabe zu sanieren, bevor sie E-Mail?

Beachten Sie, dass der Web-Host-org noch PHP ist mit 4, so dass ich nicht nur filter_var für Strings verwenden kann. Ich arbeite mit ihnen das Problem zu beheben , aber jetzt würde ich reguläre Ausdrücke oder strip_tags oder eine andere Methode verwenden.

Form Fluss:
1. Der Benutzer gibt E-Mail auf der Homepage und klickt Versenden
2. Benutzer gibt Name, Adresse, weitere Informationen auf der zweiten Seite (schlechte Bedienbarkeit, ich weiß, aber mein Chef hat mich gebeten,) und klickt auf „Senden“
3. Sammeln Sie die Daten über $ _POST und an den Publikationen Editor eine E-Mail (und möglicherweise eine Bestätigung an den Teilnehmer senden).

Ich werde die E-Mail in Schritt 2 und die anderen Daten in Schritt 3 Ich schätze Ihre Hilfe sanieren,
Kevin

War es hilfreich?

Lösung

Sie müssen sich bewusst sein, von Header-Injection Angriffe E-Mail.

Im Grunde genommen, wenn Sie \n und \r aus der von der $name, $from, $to Streifen und $subject sollten Sie ziemlich sicher sein, aber es ist immer am besten, eine weiße Liste Ansatz.

Andere Tipps

Was ich mich weiß, solange man nur in E-Mail-Körper Klartext und Einsatz Benutzer eingegebenen Daten verwendet, gibt es nichts zu sanieren.

Wenn Sie die vom Benutzer eingegebenen verwenden E-Mail Adresse eine Bestätigung zu schicken, sicherzustellen, dass sie nur eine E-Mail eingegeben haben. Ein Spammer kann Zeilenumbrüche schleichen, und daher beliebig lange Bcc: Einträge, in der Nachrichten-Header, wenn Sie nicht aufpassen.

Siehe E-Mail-Injektion .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top