Hola,
este es un buen recurso sobre el tema:
Email Injection. Había leído que la clase Zend_Mail previene este tipo de ataques "automáticamente" además de ser una forma elegante de crear y enviar un email.
Sin estar 100% seguro, creo que en lugar de ver si se encuentra cada posible header en un campo, se puede optar por hacer algo como esto:
Código PHP:
<?php
$from = $_POST["sender"];
$from = urldecode($from);
if (eregi("(\r|\n)", $from)) {
die("Why ?? :(");
}
?>
ya que, forzosamente, para que los headers sean inyectados es necesario tener "\r\n" en el campo (Zend_Mail reemplaza cada ocurrencia de "\r\n\t" por "???" xD).
Saludos.