Реальный пиарСоздание сайтовБезопасность → Защита баз данных: разделение доступа

Защита баз данных: разделение доступа

База данных

Многие администраторы сайтов допускают опасную ошибку, влекущую как похищение информации, так и ее уничтожение. Назначая единые права доступа для всех скриптов сайта, таким образом, мы потенциально позволяем злоумышленнику получить полный доступ от имени любого скрипта. Имея в виду, что чем большее число скриптов находятся на сервере, тем больше вероятность взлома, такой неправильный подход в распределении прав может сказаться весьма печально на работе сервера.

Обычно сайт состоит из нескольких логических частей, самая простая схема такова:
система администрирования (управления) сайтом;
система отображения контента.
На сайте может быть достаточно много различных модулей с разными принципами работы, например, голосования, форум, гостевая книга, система аутентификации, чат, информеры и т.д. Все они требуют зачастую совершенно различных прав при работе с базой данных.

Например, управление предусматривает не только выборку информации из базы, как модуль отображения, но и внесение и изменение. Для современных форумов список возможностей еще больше, это и уничтожение таблиц, и изменение их свойств, и пакетный импорт данных. Для системы голосований на сайтах потребуется обновление полей или внесение данных в базы. Таким образом, разные модули мы можем наделить разными "полномочиями", а вернее - правами.

Идеальным вариантом было бы создание отельных учетных записей для разных модулей с обечпечения доступа к конкретным базам и таблицам в них. Однако может оказаться достаточным и использование однотипных учетных записей. В простейшем случае можно создать две учетные записи: для отображения информации и для ее занесения: site_use и site_admin.

Создадим эти записи в БД MySQL:

GRANT SELECT ON site.* TO site_use@localhost IDENTIFIED BY "password1";
GRANT SELECT, INSERT, UPDATE, DELETE ON site.* TO site_admin@localhost IDENTIFIED BY "password2";
FLUSH PRIVILEGES;

Таким образом, учетная запись site_use (пароль password1) получила возможность выборки данных (SELECT) из всех (*) таблиц базы данных site. Вторая учетная запись site_admin позволяет так же добавлять, обновлять и удалять данные. Последняя команда сбрасывает буферы прав, чтобы изменения вступили в силу немедленно.

Теперь, если скрипт отображения сайта окажется уязвим и злоумышленник получит возможность от имени учетной записи отображения site_use выполнять команды MySQL, он не сможет совершить ничего существенного. Его действия будут ограничены лишь отображением содержимого базы данных site. Другие учетные записи, хранящиеся в базе mysql, ему недоступны. Недоступно так же изменение информации на сайте.


Источник: http://saytostroy.ru

Рекомендуем



Прикладная защита от DDoS-атак Для того, чтобы не совершать регулярных однообразных обращений к базе данных, а также ряда других действий, которые из запроса в запрос не меняют результата, будем сохранять результаты предыдущих вычислений


Блокировка нежелательных обращений к серверу 1 находится в нежелательной сети, и нежелательные запросы исходят из всей сети, нужно блокировать всю подсеть


Опасность при использовании кода биржи ссылок MainLink Но в остальных случаях вебмастеры очень часто не заботятся о переименовании директории с файлами MainLink с оригинальной mainlink на какую-либо другую