Добрый день!
Несколько лет назад встречал статью на хабре, в которой советовали все вводимые пользователем данные фильтровать, а затем еще кодировать перед помещением в MySQL. Тип кодирования не помню, то ли base64, то ли urlencode. Это должно полностью отсечь несколько видов атак с «неправильными» символами внутри данных. Причем этот тип кодирования поддрживается и PHP и MySQL, что позволяет производить полноценный поиск внутри таблицы. Напомните, пожалуйста, ссылку на статью.
Много почитал про подготовленные выражения. Подготовленные запросы — это в первую очередь, удобный механизм для программиста. Защита от инжекта оказалась приятным побочным эффектом. Но на некоторых сайтах их предлагают в качестве панацеи от всех на свете атак. Бред, чистой воды. Некоторое время назад я изучал вопрос атак на MySQL и отдаю себе отчет, что подготовленные запросы отсекают 1-2 вида атак. Кодирование текстовых строк в base64 замедляет работу скрипта, заметно увеличивает объем хранимых данных, но в сочетании с подготовленными запросами даст поистине великолепную защиту. При этом не стоит забывать про проверку длины передаваемых данных.
Кодируете в base64 перед запросом, декодируете средствами mysql во время запроса (http://dev.mysql.com/doc/refman/5.6/en/string-functions.html#function_from-base64)
Бред какой-то. Используйте нормальные средства для работы с СУБД (в Perl это к примеру DBIx::Class) и все у вас будет хорошо безо всяких извращений с кодированием.
Я бы рад, да не хватает времени все изучить. Программирование — не основная моя работа, я админ сети. Просто «для себя и коллег» приходится иногда делать скрипты, вот и стараюсь в рамках своих знаний сделать максимально хорошо. Но до профессионалов программирования мне как пешком до луны.