Ecco come pera lo fa in il loro pacchetto Mail:
function _sanitizeHeaders(&$headers)
{
foreach ($headers as $key => $value) {
$headers[$key] =
preg_replace('=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\n|\r)\S).*=i',
null, $value);
}
}
Ovviamente, affinché questo metodo sia adattato per funzionare con la funzione di posta () integrata, è necessario eseguire alcuni lavori. Invece di lavorare con gli array associativi per le intestazioni, la funzione mail () accetta solo una stringa. Quindi tu (l'utente di mail ()) dovrebbe sterilizzare ogni pezzo dell'intestazione simile a quello sopra come si costruisce la stringa delle intestazioni.
Mi piacerebbe sentire nei commenti se questo effettivamente copre ogni minaccia di iniezione (da quelli che hanno più esperienza con problemi come questo).