StaDi
@StaDi
Курьер в it отделе

Верна ли логика работы с БД (разграничение прав и постоянное подключене) ?

Друзья, начитавшись разного, в голове каша, хочется разъяснения.

1.
Есть ли смысл для разного рода запросов использовать разных пользователей?
Например:
- Если нам нужно только прочитать данные, то используем пользователя у которого есть права только на выборку select
- Если добавлять/править/удалять, то пользователя с правилами select, insert, update, вместо прав delete будем помечать записи на удаление, после пробегаться по ним удаляя с помощью пользователя с расширенными правилами.

По идеи такие действия должны повысить защиту БД. Но есть ли в них смысл, если да то в каких случаях.

2.
Есть ли смысл только при выборки данных использовать постоянное соединение? А для всех других запросов обычное непостоянное соединение.

Тогда, мы вроде бы должны экономить на времени и ресурсах, ведь нам не нужно каждый раз осуществлять соединение.

---

Подскажите на сколько такое мышление верное? на сколько это актуально? кто-нибудь так делает?
Возможно ли оно на связке php + mysql ?
И спасибо!
  • Вопрос задан
  • 2207 просмотров
Пригласить эксперта
Ответы на вопрос 2
yarofon
@yarofon
Не стоит заморачиваться)
Подобное можете реализовать только в качестве прокачки скилов, а для обычного веб-проекта это излишества.
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
Смысла нет.

Проблема начинающих защищателей, которых ты начитался, состоит в очень скудных знаниях об SQL инъекциях. И свои советы они строят исходя из этих самых знаний. Состоящих из ровно одного примера про Бобби-фейсом-об-тейбл.

Суровая же правда жизни состоит в том, что инъекция через SELECT может быть куда более разрушительной.

Поэтому заниматься такой ерундой, как разделение прав, не нужно. Нужно соблюдать одно очень простое правило при работе с БД - ЛЮБЫЕ данные должны попадать в запрос только через плейсхолдер - и проблема инъекций решена.

Во втором вопросе не вижу смысла вообще. Постоянное соединение, которое ты открыд для селекта, будет видно и тому скрипту, который выполняет апдейты. Не вижу причины, по которой надо открывать новое вместо того, чтобы воспользоваться уже открытым.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы