Защита от sql инъекций
- //эта функция экранирует параметры
- function qw() {
- $args = func_get_args();
- $query = array_shift($args);
- $args = array_map('mysql_real_escape_string', $args);
- array_unshift($args, $query);
- $query = call_user_func_array('sprintf', $args);
- if (!$query) die('неверный запрос');
- return mysql_query($query);
- }
- //пример использования
- $q = qw("SELECT * FROM tbl WHERE login='%s' AND pass='%s' ", "лог'ин", "пар'оль");
- //в этом запросе все кавычки будут экранированы, инъекция невозможна
Описание: вместо %s в функцию подставляется параметр, обработанный через mysql_real_escape_string
поэтому нет никакой необходимости предварительно обрабатывать данные , можно писать сразу
qw("SELECT FROM tbl WHERE id='%s' ", $_GET['id']);
Главное не забыть поместить %s в кавычки.
поэтому нет никакой необходимости предварительно обрабатывать данные , можно писать сразу
qw("SELECT FROM tbl WHERE id='%s' ", $_GET['id']);
Главное не забыть поместить %s в кавычки.