Да, уязвимо е. Говорите стойности директно от въведеното от потребителя и го поставяте във вашата заявка.
Трябва да погледнете mysql_real_escape_string
, или (за предпочитане) използвайте MySQLi, който предоставя параметризирани заявки. SQL инжекциите се причиняват от потребителски данни, които се инжектират като SQL код вместо данни. Единственият истински начин за защита на заявка е да се използват параметризирани заявки, които разделят данните и текста на заявката на ниво протокол.
Освен това вашите пароли се съхраняват в обикновен текст. Трябва да използвате осолена хеш функция като абсолютен минимум.
Трябва също така да разгледате тези страхотни въпроси:
- Как мога да предотвратя SQL инжектиране в PHP?
- Защитен хеш и сол за PHP пароли
- Окончателното ръководство за формуляр- базирано на уебсайт удостоверяване