Stavo approfondendo l'argomento e allo scopo ho fatto alcune ricerche sul web trovando molte funzioni.
Io filtro tutti gli input anzitutto con strip_tags() ed elimino il primo problema. Ma da come ho capito c'è molto altro...

Vi dico ciò che ho capito.
L'utente può inserire nella mail degli headers (si parla soprattutto di 'headers injection') e quindi il problema consisterebbe:
1) i caratteri di ritorno a capo e ritorno carrello ('\r' e '\n');
2) alcune stringhe: 'content-type', 'to', 'cc', 'bcc';

Data la mia ignoranza sull'argomento e sulle espressioni regolari volevo chiedervi quali metodi adottare per filtrare gli input inviati dall'utente e vi volevo sottoporre alcune funzione filtro scopiazzate sulla rete ma che vorrei capire.

Sul web ho trovato:

Codice PHP:
<?php 
function has_no_newlines($text
    { 
    return 
preg_match("/(%0A|%0D|\\n+|\\r+)/i"$text) == 0;
    } 
 
function 
has_no_emailheaders($text
    { 
    return 
preg_match("/(%0A|%0D|\\n+|\\r+)(content-type:|to:|cc:|bcc:)/i"$text) == 0;
    } 

?>
Cosa fanno questi due filtri (cosa sostituiscno??!)??
cosa sono %0A %0D e quel + dopo a \r \n cosa significa?
la 'i' alla fine significa che sostituisce sia in caso di maiuscole e minuscole?
-----------------------------------
Codice PHP:
<?php
function isInjected($str) {
    
$injections = array('(\n+)',
    
'(\r+)',
    
'(\t+)',
    
'(%0A+)',
    
'(%0D+)',
    
'(%08+)',
    
'(%09+)'
    
);
    
$inject join('|'$injections);
    
$inject "/$inject/i";
    if(
preg_match($inject,$str)) {
        return 
true;
    }
    else {
        return 
false;
    }
}
?>
questa come è rispetto alla precedente?

--------------------------------------
Codice PHP:
<?php
function safe$name ) {
   return( 
str_ireplace(array( "\r""\n""%0a""%0d""Content-Type:""bcc:","to:","cc:" ), ""$name ) );
}
?>
Come devo modificare le stringhe dell'array per sostituire str_ireplace (php version 5.0.0 o superiore) con preg_replace (con modificatore 'i')?

Voi cosa utilizzate per filtrare gli input dei form mail? Ci sono altre cose da sapere per rendere sicuro al 100% il form contatti?