Ja, det er sårbart. Du taler værdier direkte fra brugerinput og placerer dem i din forespørgsel.
Du bør se på mysql_real_escape_string
, eller (helst) brug MySQLi, som giver parametriserede forespørgsler. SQL-injektioner er forårsaget af, at brugerdata bliver injiceret som SQL-kode i stedet for data. Den eneste rigtige måde at sikre en forespørgsel på er at bruge parametriserede forespørgsler, som adskiller data og forespørgselstekst på protokolniveau.
Desuden gemmes dine adgangskoder i klartekst. Du bør bruge en saltet hash-funktion som et absolut minimum.
Du bør også tage et kig på disse fantastiske spørgsmål:
- Hvordan kan jeg forhindre SQL-injektion i PHP?
- Sikker hash og salt til PHP-adgangskoder
- Den definitive vejledning til form- baseret webstedsgodkendelse