Защита от sql инъекций

  1. //эта функция экранирует параметры
  2. function qw() {
  3. $args = func_get_args();
  4.  
  5. $query = array_shift($args);
  6. $args = array_map('mysql_real_escape_string', $args);
  7. array_unshift($args, $query);
  8. $query = call_user_func_array('sprintf', $args);
  9.  
  10. if (!$query) die('неверный запрос');
  11.  
  12. return mysql_query($query);
  13. }
  14.  
  15. //пример использования
  16. $q = qw("SELECT * FROM tbl WHERE login='%s' AND pass='%s' ", "лог'ин", "пар'оль");
  17. //в этом запросе все кавычки будут экранированы, инъекция невозможна
Описание: вместо %s в функцию подставляется параметр, обработанный через mysql_real_escape_string
поэтому нет никакой необходимости предварительно обрабатывать данные , можно писать сразу
qw("SELECT FROM tbl WHERE id='%s' ", $_GET['id']);
Главное не забыть поместить %s в кавычки.

Реклама

Мы в соцсетях

tw tg yt gt