<?php /** * Защита от sql инъекций * автор: Nc_Soft * 15.09.2009 */ /* Почему-то разработчики PHP не сделали функцию для работы с бд, которая принимает запросы с параметрами. Это сильно бы помогло в безопасности. */ //эта функция экранирует параметры 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 в кавычки. */