Проблемы, связанные с Web

Подключение базы данных MySQL к Web порождает нескольку специфических проблем безопасности.
Неплохо начать с создания пользователя специально для подключения к Web. При этом ему можно выдать минимально необходимые полномочия и не предоставлять такие полномочия как, например, DROP, ALTER или CREATE. Этому пользователю можно было бы выдать полномочия SELECT только для таблиц catalog и полномочия INSERT — только для таблиц order. Приведенный пример — еще одна иллюстрация применения принципа минимальных полномочий.
Предостережение
В предыдущей главе было описано использование PHP-функций addslashes () и stripslashes () для удаления из строки сомнительных символов. Перед отправкой любых данных в MySQL важно не забывать о необходимости реализации как этих действий, так и общей “чистки” данных. Следует не забывать об использовании функции doubleval () для проверки того, что числовые данные таковыми являются в действительности. Пропуск этой проверки — часто встречающаяся ошибка; люди помнят о необходимости вызова функции addslashes (), но не проверяют числовые данные.
Проверять все данные, поступающие от пользователя, необходимо всегда. Даже если HTML-форма состоит только из полей выбора и переключателей, кто-либо может изменить URL-адрес, чтобы попытаться взломать сценарий. Целесообразно также проверять размер поступающих данных.
Если пользователи вводят пароли или конфиденциальные данные, которые должны храниться в базе данных, помните, что если только не использовать протокол безопасных сокетов (Secure Sockets Layer — SSL), эти данные будут передаваться из браузера серверу в виде обычного текста. Использование SSL более подробно рассматривается в последующих главах.