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

Czy muszę chronić się przed wstrzyknięciem SQL, jeśli korzystam z listy rozwijanej?

Tak, musisz się przed tym chronić.

Pozwól, że pokażę ci, dlaczego, korzystając z konsoli programisty Firefoksa:

Jeśli nie wyczyścisz tych danych, Twoja baza danych zostanie zniszczona. (Może to nie jest całkowicie poprawne wyrażenie SQL, ale mam nadzieję, że zrozumiałem.)

Tylko dlatego, że masz ograniczone opcje dostępne w menu rozwijanym nie oznacza ograniczyłeś dane, które mogę wysłać do twojego serwera.

Jeśli próbowałeś ograniczyć to dalsze korzystanie z zachowania na swojej stronie, moje opcje obejmują wyłączenie tego zachowania lub po prostu napisanie niestandardowego żądania HTTP do twojego serwera, które i tak imituje ten formularz. Istnieje narzędzie o nazwie curl dokładnie do tego celu i myślę polecenie, aby mimo wszystko przesłać ten wstrzyknięcie SQL, wyglądałoby mniej więcej tak:

curl --data "size=%27%29%3B%20DROP%20TABLE%20*%3B%20--"  http://www.example.com/profile/save

(Może nie jest to całkowicie poprawne polecenie curl, ale znowu mam nadzieję, że zrozumiałem.)

Powtórzę więc:

NIGDY nie ufaj danym wprowadzanym przez użytkownika. ZAWSZE chroń się.

Nie zakładaj, że jakiekolwiek dane wprowadzane przez użytkownika są bezpieczne. Jest potencjalnie niebezpieczny, nawet jeśli dotrze w inny sposób niż za pomocą formularza. Żadna z nich nigdy nie jest na tyle godna zaufania, aby zrezygnować z ochrony przed wstrzyknięciem SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzupełnić ciąg znakami wiodącymi/końcowymi w MySQL — LPAD(), RPAD()

  2. Hibernacja:Automatyczne tworzenie/aktualizowanie tabel db na podstawie klas jednostek

  3. JSON_TYPE() – Uzyskaj typ wartości JSON w MySQL

  4. Jak przechowywać nazwę pliku w bazie danych wraz z innymi informacjami podczas przesyłania obrazu na serwer za pomocą PHP?

  5. SQL:Jaka jest domyślna kolejność zapytań?