In uno script volevo lasciare agli utenti la possibilità di inserire link verso l'esterno verso siti o immagini ovviamente però evitando injection, xss e csrf.

Quale sarebbe un buon filtro?

Per il momento prima di inserire nel db esegue questo:
Codice PHP:
htmlentities(strip_tags($testo),ENT_QUOTES); 
e dopo aver prelevato dal db e prima di visualizzarlo questo:
Codice PHP:
nl2br(strip_tags(html_entity_decode($testo)));