Ano, je to zranitelné. Říkáte hodnoty přímo z uživatelského vstupu a umístíte je do svého dotazu.
Měli byste se podívat na mysql_real_escape_string
, nebo (nejlépe) použijte MySQLi, které poskytuje parametrizované dotazy. Injekce SQL jsou způsobeny tím, že uživatelská data jsou vkládána jako kód SQL namísto dat. Jediným skutečným způsobem zabezpečení dotazu je použití parametrizovaných dotazů, které oddělují data a text dotazu na úrovni protokolu.
Kromě toho jsou vaše hesla uložena v prostém textu. Jako absolutní minimum byste měli používat osolenou hashovací funkci.
Měli byste se také podívat na tyto úžasné otázky:
- Jak mohu zabránit vkládání SQL v PHP?
- Bezpečný hash a sůl pro hesla PHP
- Konečný průvodce form- založené na ověřování webových stránek