Sì, è vulnerabile. Stai parlando di valori direttamente dall'input dell'utente e inserendolo nella tua query.
Dovresti guardare mysql_real_escape_string
o (preferibilmente) utilizzare MySQLi che fornisce query parametrizzate. Le iniezioni SQL sono causate dai dati utente inseriti come codice SQL anziché come dati. L'unico vero modo per proteggere una query è utilizzare query parametrizzate, che separano i dati e il testo della query a livello di protocollo.
Inoltre, le tue password sono memorizzate in chiaro. Dovresti usare una funzione hash salata come minimo assoluto.
Dovresti anche dare un'occhiata a queste fantastiche domande:
- Come posso prevenire l'SQL injection in PHP?
- Hash sicuro e salt per password PHP
- La guida definitiva per formare- autenticazione basata sul sito web