По принцип всеки път, когато използвате някои опасни данни (въведени от потребителя, стойност от база данни, файл или външен уебсайт, т.е. всякакви данни, които не сте 100% сте сигурни, че е безопасно) в SQL заявка, трябва да го избягате, като използвате mysql_real_escape_string . Имайте предвид, че съгласно OWASP , тази функция не е защитена за избягване на имена на динамични таблици (но това е много по-рядко от вмъкването на „основно“ въвеждане на потребител).
Предлагам ви да разгледате цялата статия на OWASP за SQL инжектиране , както и да разглеждате останалата част от уебсайта. Това е чудесен източник на информация за сигурността в уеб приложенията.
IMO, предпочитаният начин за предотвратяване на SQL инжектиране е да използвате подготвени изявления .
Моля, не забравяйте, че ако решите да използвате mysql_real_escape_string()
работи само когато се използва вътре в низ, който е разделен с кавички. Никога не го използвайте за каквито и да било стойности без цитати. Това включва числови стойности; вместо това потвърдете, че въведеното от потребителя всъщност е числово.