SQL injections: much ado about nothing 13.01.05 22:49
Поправьте меня, если я что-то не понимаю, но почему-то мне не очень интересны многочисленные статьи, посвященные борьбе с SQL Injections, в которых долго и занудно расписываются всевозможные способы борьбы с ними и не упоминается простой и гарантированно устраняющий 99% проблем способ, заключающийся в принудительном квотировании строковых параметров (то, что делает перловская функция DBI::quote, и что по сути происходит с bound parameters - простая замена всех ' на '' и всех \ на \\. [Не забывайте при копировании материала указывать полный адрес источника: //bugtraq.ru/rsn/reviewonly/sql.html] Для параметров, которые хочется передать в запрос без кавычек - к примеру, для числовых полей, достаточно перед передачей в запрос сделать +=0 или принудительно привести, например, к int). Оставшийся 1 процент остается на долю символов _ и % в сочетании с запросами с like, впрочем, серьезные проблемы это вызывает крайне редко.