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

Zapobieganie wstrzykiwaniu SQL w dynamicznym SQL

Aha, to po prostu fantastyczne!
Nareszcie udało mi się zrozumieć, co czy ten koleś ma na myśli pod jego „dynamicznym sql”. Nic dziwnego, ponieważ jest doskonale zamaskowany i na pierwszy i drugi rzut oka wygląda jak zwykły SQL!

Oto odpowiedź:

Nie rób tego. Kiedykolwiek.

Twój pomysł na „dynamiczny” SQL jest zasadniczo błędny. Nikt nie robi tego w ten sposób.

Nie znam Twojego konkretnego zadania, ale Twoje rozwiązanie jest najwyraźniej niewłaściwe I na pewno jest na to rozsądny sposób. Wystarczy przestrzegać tych prostych zasad:

  • pozbądź się meta_tabeli
  • pozbądź się zapytań SQL przechowywanych w bazie danych
  • napisz (lub zbuduj) wszystkie zapytania w swojej aplikacji tylko z dwóch źródeł:
    • zakodowany SQL, wstępnie napisany w Twoim kodzie
    • przygotowane oświadczenia dla wszystkich części zmiennych

i całkowicie bezpieczny 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. Nieznany błąd kolumny w pełnej składni łączenia

  2. Jak utworzyć tabelę przestawną w MySQL

  3. Błąd 1366 Nieprawidłowa wartość całkowita:„1” podczas importowania pliku

  4. Dlaczego otrzymuję identyfikator zasobu nr 4, gdy stosuję print_r() do tablicy w PHP?

  5. PDOException w Connector.php wiersz 47:SQLSTATE[HY000] [1045] Odmowa dostępu dla użytkownika 'hassan'@'localhost' (przy użyciu hasła:TAK)