Ja, es ist anfällig. Sie sprechen Werte direkt aus Benutzereingaben und platzieren sie in Ihrer Abfrage.
Sie sollten sich mysql_real_escape_string
ansehen , oder verwenden Sie (vorzugsweise) MySQLi, das parametrisierte Abfragen bereitstellt. SQL-Injections werden dadurch verursacht, dass Benutzerdaten als SQL-Code anstelle von Daten injiziert werden. Die einzig wahre Möglichkeit, eine Abfrage zu sichern, besteht in der Verwendung parametrisierter Abfragen, die die Daten und den Abfragetext auf Protokollebene trennen.
Außerdem werden Ihre Passwörter im Klartext gespeichert. Sie sollten als absolutes Minimum eine Salted-Hash-Funktion verwenden.
Sie sollten sich auch diese tollen Fragen ansehen:
- Wie kann ich die SQL-Injektion verhindern in PHP?
- Sicherer Hash und Salt für PHP-Passwörter
- Der endgültige Leitfaden zur Formular- basierte Website-Authentifizierung