Frage

Auf der PHP-Handbuch Seite für E-Mail-Funktion, es gab einen Benutzerkommentar sagen: „Sorgfalt Kopf Injektion zu verhindern“.

In meiner Anwendung verwende ich die Mail-Funktion, und die einzige Benutzereingabe I als Parameter an die Funktion verwende, ist die E-Mail-Adresse.

Ich habe eine vorläufige Überprüfung der E-Mail-Adresse die Regex ^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$ verwendet wird.

Wird dies auch verhindern, dass gegen Header-Injection?

Danke,
JRH

War es hilfreich?

Lösung

Jemand möchte etwas injizieren:

user_address@domain.com
CC: spam_address1@domain.com, spam_address2@domain.com, spam_address3@domain.com

Sie erlauben nicht \ r \ n , die zur Definition neuer Header Informationen benötigt wird. So Ihre Anwendung sicher ist.

Andere Tipps

Rubrik Injektion ist ein Risiko nur, wenn Sie vom Benutzer bereitgestellte Material in den Nachrichten-Header setzen. Ein typisches Beispiel ist die Verwendung der E-Mail-Adresse geschrieben setzen die Reply-To-Header.

Dies ist, was ich benutze:

$email = preg_replace(array("/\r/i","/\n/i", "/%0a/i", "/%0d/i", "/Content-Type:/i", "/bcc:/i", "/to:/i", "/cc:/i", "/Content\-Transfer\-Encoding\:/i", "/Mime\-Version\:/i" ), "", $email); 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top