Ich fühle mich etwas peinlich, weil ich eine Mail-Körper mit PHP generieren, ohne die Variablen zu entkommen. In HTML verwende ich htmlspecialchars() oder ähnliche Funktionen, für Befehlszeilen escapeshellarg(), aber für Mails? Zum Beispiel so etwas wie dieses:Quoting/Escaping Variablen im Mail Body
<?php
$usercontent = $_GET['usercontent'];
mail("[email protected]", "My Subject", "My body with $usercontent included");
?>
Was könnte ein möglicher Angreifer mit einem Skript tun, wie die oben und wie könnte ich schützen gegen einen solchen Angriff? Oder ist PHP Mail() gespeichert und warum?
aktualisieren
Bitte beachten Sie das Beispiel:
- Nur der Körper (keine Header!) Betroffen ist
- Content-Type ist text/plain
- Einige Beweis der Antwort wäre nett
- MTA ist ein Postfix sendmail mit "/ usr/sbin/sendmail -t-i"
Die riskantere Verwendung der Mail-Funktion ist auf dem 4. Parameter, und solange Sie es nicht mit benutzergenerierten Inhalten verwenden, denke ich, dass Sie sicher genug sind, damit zu gehen. Wie auch immer, ich würde empfehlen, eine Bibliothek von Drittanbietern wie Swiftmailer http://swiftmailer.org/ – arraintxo
zu verwenden. Für die Sicherheitsprobleme, die den 4. Parameter betreffen, können Sie auch hier nachschauen: http://stackoverflow.com/questions/ 4834337/phps-mail-was-sind-potenzial-auswertungsfragen-für- – arraintxo
Danke für die Kommentare, über die Sicherheitsprobleme aus den anderen Parametern, mir ist klar, ich interessiere mich nur für den Körper wie injizieren Multi-Part-Mails oder so ähnlich. – Trendfischer