Mi sento un po 'imbarazzante, perché sto generando un corpo di posta con PHP senza sfuggire alle variabili. In HTML sto usando htmlspecialchars() o funzioni simili, per le righe di comando escapeshellarg(), ma per le e-mail? Per esempio qualcosa di simile:Variabili/escape di variabili nel corpo della posta
<?php
$usercontent = $_GET['usercontent'];
mail("[email protected]", "My Subject", "My body with $usercontent included");
?>
Cosa potrebbe un possibile aggressore che fare con uno script come quello di cui sopra e come avrei potuto proteggere da un attacco del genere? O è PHP mail() salvare e perché?
Aggiornamento
Si prega di vedere l'esempio:
- il corpo è influenzato solo (nessuna intestazione!)
- Content-Type è text/plain
- qualche prova al risposta sarebbe carino
- MTA è un sendmail postfix con "/ usr/sbin/sendmail -t -i"
L'uso più rischioso della funzione di posta elettronica è il 4 ° parametro e, finché non lo utilizzi con contenuti generati dagli utenti, penso che tu sia abbastanza sicuro per utilizzarlo. Ad ogni modo, consiglierei di usare una libreria di terze parti come Swiftmailer http://swiftmailer.org/ – arraintxo
Per i problemi di sicurezza che riguardano il 4 ° parametro, puoi anche dare un'occhiata qui: http://stackoverflow.com/questions/ 4834337/phps-mail-what-are-potential-issues-to-watch-out-for – arraintxo
Grazie per i commenti, sui problemi di sicurezza degli altri parametri, sono ben consapevole, sono solo interessato al corpo come iniettare mail multi-parte o qualcosa del genere. – Trendfischer