V podstatě pokaždé, když použijete nějaká nebezpečná data (uživatelský vstup, hodnota z databáze, souboru nebo externí webové stránky, tedy jakákoli data, která 100 % nejste jisti, že je bezpečný) v dotazu SQL, měli byste jej opustit pomocí mysql_real_escape_string . Upozorňujeme, že podle OWASP , tato funkce není bezpečná pro escapování dynamických názvů tabulek (ale to je mnohem méně běžné než „základní“ vkládání uživatelského vstupu).
Navrhuji, abyste se podívali na celý článek OWASP o SQL injection a také k procházení zbytku webu. Je to skvělý zdroj informací o zabezpečení webových aplikací.
IMO je preferovaným způsobem, jak zabránit vkládání SQL, použít připravené výpisy .
Pamatujte prosím, že pokud se rozhodnete použít mysql_real_escape_string()
funguje pouze při použití uvnitř řetězce, který je oddělen uvozovkami. Nikdy jej nepoužívejte na žádné neuvedené hodnoty. To zahrnuje číselné hodnoty; místo toho ověřte, že uživatelský vstup je skutečně číselný.