Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как запретить пользователям доступ к определенным записям в БД

Дима Левченко Ученик (128), на голосовании 3 года назад
У каждой системы и подсистемы есть свой id. Осуществляю вывод из бд посредством get запроса
../?systemid=62. Как запретить пользователю 2 доступ к данным пользователя один? Ведь достаточно редактировать GET и база данных выведет информацию. Делать проверку на принадлженость пользователю? это значит что каждому элементу нужно присваивать id пользователя, а если у подсистем буду еще подсистемы и так далее? правильный ли это подход ?
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (445796) 3 года назад
Правильным подходам является:
1. Выбор СУБД, позволяющей ограничивать доступ к данным индивидуальным пользователям на уровне записей. Большинство СУБД умеет это дело только на уровне таблиц.
2. Аутентификация каждого пользователя в СУБД отдельно, а не всех скопом под одним логином веб-сервера, как это принято у любителей "редактировать GET".
3. Назначение соотв. прав на соотв записи соотв. пользователям.
Это сложно и дорого, но это ПРАВИЛЬНЫЙ способ.

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

Все остальное - потенциально дырявая фигня на постном масле.
Похожие вопросы