Zasadniczo za każdym razem, gdy używasz niebezpiecznych danych (dane wprowadzone przez użytkownika, wartość z bazy danych, plik lub zewnętrzna strona internetowa, tj. wszelkie dane, których nie jesteś 100% upewnić się, że jest to bezpieczne) w zapytaniu SQL, należy je zmienić za pomocą mysql_real_escape_string . Zauważ, że zgodnie z OWASP , ta funkcja nie jest bezpieczna dla ucieczki dynamicznych nazw tabel (ale jest to znacznie mniej powszechne niż „podstawowe” wstawianie danych wejściowych przez użytkownika).
Proponuję zapoznać się z całym OWASP na temat wstrzykiwania SQL , a także przeglądać pozostałą część serwisu. To świetne źródło informacji o bezpieczeństwie w aplikacjach internetowych.
IMO, preferowanym sposobem zapobiegania wstrzykiwaniu SQL jest użycie przygotowane zestawienia .
Pamiętaj, że jeśli zdecydujesz się użyć mysql_real_escape_string()
działa tylko wtedy, gdy jest używany w ciągu znaków oddzielonym cudzysłowami. Nigdy nie używaj go w przypadku wartości niecytowanych. Obejmuje to wartości liczbowe; zamiast tego sprawdź, czy dane wejściowe użytkownika są w rzeczywistości liczbowe.