Quanto detto per le SQL Injection va bene, ma ti consiglio di fare anche un controllo con le regex sugli input, per controllare la presenza di "codice maligno" tipo UNION SELECT ecc...

Per le XSS va benissimo l'htmlentities(), che è meglio dell'htmlspecialchars()...

Per il resto cerca di salvare le password nei database trasformandole prima, tipo
Codice PHP:
sha1(md5($password)); 

infine se usi un sistema di utenza, usa le sessioni che sono più sicure dei cookie