Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Gdzie używać mysql_real_escape_string, aby zapobiec wstrzykiwaniu SQL?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL ustawia strefę czasową w kodzie PHP

  2. przechowywanie plików mp3 w mysql

  3. Jak wstawić dane z jednej tabeli bazy danych do innej tabeli bazy danych w Mysql

  4. Mysql nie może się połączyć - Odmowa dostępu (przy użyciu hasła tak)

  5. Inteligentna grupa MySQL GROUP BY dla strumieni aktywności