На каком уровне должна быть реализована безопасность в веб-приложении социальной сети? - PullRequest
3 голосов
/ 26 декабря 2010

Я разрабатываю социальное веб-приложение на php / mysql, я хотел бы услышать ваш совет о том, как лучше реализовать систему безопасности.Я планирую что-то вроде этого: - На уровне презентации я ограничиваю пользователя, чтобы он мог видеть только те элементы / контент, которые он имеет право видеть с теми правами, которые он имеет право, и на уровне базы данных всякий раз, когда мои данные читаются / записываются или обновляютсяЯ проверяю, что у человека есть права на такое взаимодействие с этой частью данных.Таким образом, для каждого действия есть 2 уровня безопасности, один на уровне представления и другой на уровне базы данных.Будет ли двойная проверка слишком затратной?

Конечно, это связано только с внутренними проблемами безопасности.

Ответы [ 2 ]

2 голосов
/ 26 декабря 2010

Кто знает о текущем пользователе?

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

Если бизнес-уровень знает , кто является текущим пользователем, он может запросить сам компонент авторизации о вызовах, которые достигают уровня презентации на бизнес-уровне.Однако это вводит много избыточных проверок.Это нормально, если уровень представления делает много изящных вещей с объектными объектами бизнес-уровня или когда безопасность критична.

0 голосов
/ 26 декабря 2010

С точки зрения модели разрешений, я рекомендовал использовать Обязательный контроль доступа , потому что он учитывает группы.( RBAC - еще одна модель, на которую стоит обратить внимание, но в ней нет групп.)

Но в конце концов безопасность - это действительно проблема контроля качества кода.Вы могли бы реализовать самый надежный RBAC, и он был бы полностью обойден одной уязвимостью XSS / XSRF / SQLi.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...