1: nel database non si salva la password, ma il risultato dell'applicazione di una 'funzione hash crittografica' tipo sha o md5.
Che cosa e' una funzione hash crittografica, lo trovi su wikipedia.
3) usa https
2) in realta' uno, nella form, deve poter scrivere quello che vuole. Sei tu che devi assicurarti di interpretare il contenuto in un'unico modo possibile e che non puo' fare danni.
Anche se in un'area di testi, ad esempio, l'utente scrive del codice che cancella il database, tu, quell'area di testo la devi interpretare come 'testo', non come codice da eseguire