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

Filtrowanie zapytania MySQL w PHP

Jedynym sposobem jest prawidłowe uniknięcie danych przesłanych przez użytkownika. Inni wskazali kilka sposobów na zrobienie tego.

Jest inny sposób:przygotowane zestawienia i symbole zastępcze. Przygotowane zestawienia są obsługiwane przez każdy nowoczesny Interfejs bazy danych PHP, w tym mysqli i PDO .

Użyjmy PDO jako demonstracji. Powiedzmy, że chcieliśmy zaktualizować trochę danych w tabeli foo przesłane przez użytkownika.

$sql = 'UPDATE foo SET bar = ? WHERE user_id = ?';
$sh = $db->prepare($sql);
$sh->execute(array( $_POST['bar'], $_SESSION['user_id'] ));

Zmienne w tablicy przekazane do execute zastąp symbole zastępcze znaku zapytania w zapytaniu. Kiedy tak się dzieje, są automatycznie zamieniane i cytowane . Nie musisz ręcznie je zmieniać, aby bezpiecznie umieścić je w bazie danych!

Z drugiej strony, nadal będziesz musiał je filtrować pod kątem nieoczekiwanych treści, takich jak HTML, JavaScript, litery, w których oczekujesz cyfr itp. Bezpieczne wstawianie danych do bazy danych to tylko połowa bitwy .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php:najszybszy sposób na wygenerowanie 5-cyfrowego numeru, który nie jest jeszcze w kolumnie bazy danych MySQL (z unikalnym atrybutem)

  2. MySQL 1443:co to znaczy?

  3. Jak dołączyć schemat bazy danych MySQL na GitHub?

  4. Operator logiczny AND w mySql REGEXP?

  5. Widoki MySQL