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

Zapytanie o wstrzyknięcie MySQL

Byłoby tak, chyba że w opublikowanej name umieścisz pojedyncze cudzysłowy , co pozwoliłoby wyrwać się z cytatów. Przykład, opublikuj nazwę jako:

' or 1 or '

Klauzula WHERE staje się:

WHERE id = '' or 1 or '';

Spowoduje to dopasowanie i pobranie wszystkich wierszy w tabeli z powodu or 1 część. Jak widać, wyłamuje się z cudzysłowów, aby wstrzyknąć trochę kodu SQL, a następnie wraca do cudzysłowów, aby zapytanie było prawidłowe.

Nie, ale jeśli zostało wykonane za pomocą mysqli_multi_query to tak, możesz dodać wiele zapytań na końcu.

Generalnie tak, ale przygotowane oświadczenie byłoby lepsze. Używając ucieczki, WHERE klauzula stałaby się (korzystając z mojego przykładu powyżej):

WHERE id = '\' or 1 or \'';

Nie jest to już zagrożone, ponieważ cudzysłowów nie można wydzielić i pasowałyby tylko do wierszy, jeśli name dosłownie pasuje do ' or 1 or ' co jest oczywiście mało prawdopodobne.



  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 przeprowadzić migrację bazy danych SQL Server do MySQL?

  2. Jak włączyć mysqlnd dla php?

  3. Jak usunąć z wielu tabel w MySQL?

  4. Przesyłanie wielu obrazów z PHP zapisującym tylko jedną ścieżkę pliku do bazy danych MySQL

  5. Kolumna „id” na liście pól jest niejednoznaczna w YII