Mysql
 sql >> база данни >  >> RDS >> Mysql

Филтриране на MySQL заявка в PHP

Единственият начин е правилно да избягате от предоставените от потребителя данни. Други посочиха някои начини за това.

Има и друг начин:подготвени отчети и заместители. Подготвените изявления се поддържат от всеки модерен PHP интерфейс на база данни, включително mysqli и PDO .

Нека използваме PDO като демонстрация. Да приемем, че искаме да актуализираме малко данни в таблицата foo подадена от потребител.

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

Променливите в масива се предават на execute заменете заместителите на въпросителния знак в заявката. Когато това се случи, те автоматично се избягват и се цитират . Не е необходимо да ги избягвате ръчно, за да ги направите безопасни за поставяне в базата данни!

От друга страна, все пак ще трябва да ги филтрирате за неочаквано съдържание, като HTML, Javascript, букви, където очаквате цифри и т.н. Безопасността на данните за вмъкване в базата данни е само половината от битката .



  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

  2. Escape низ за използване в MySQL пълнотекстово търсене

  3. MySQL:не е в GROUP BY

  4. PHP + MySQL:Разлика между буферирани и небуферирани заявки

  5. Моят IP адрес ли е в моята база данни, ако е така, намерете времева марка