Ден Каминский предлагает программистам кардинальное решение для защиты от одной из самых распространённых уязвимостей веб-приложений — SQL-injection. Для этого предлагается все введённые пользователем данные кодировать в base64, раскодировать же их значение предлагается уже силами SQL-сервера.
Для реализации подхода предлагается использовать функцию-враппер, изменяющую исходный запрос. Например, если в уже существующем приложении есть запрос вида
$conn->query("insert into posts values($_POST[author] , $_POST[content] );");
$conn->query(eval(b('insert into posts values(^^_POST[author] , ^^_POST[content] );')));
insert into posts values(b64d('adf..=') , b64d('hJHj...=') );')));
Набор инструментов предлагает расширение для MySQL, реализующее функции для работы с base64 и примеры функций-обёрток запросов для PHP.
Похожая техника предлагается для защиты от XSS-атак: введённые пользователем данные передаются в коде страницы в виде base64-строки, а специальная JS-функция превращает эту строку в обычный текст, который отображается в браузере без html-разбора. Пример соответствующей javascript-функции тоже входит в набор инструментов.
Найдено на Opennet
Лично на мой взгляд, проще использовать bind-переменные.
Перемещено Shaman007 из Security