. NET Core: безопасный доступ на основе членства в группах. - PullRequest
1 голос
/ 04 мая 2020

Я постараюсь сделать этот пост коротким и сразу перейду к серьезности ситуации. Наше приложение имеет понятие «Организации», которые состоят из «Членов». Недавно мы обнаружили огромный недостаток безопасности в нашем приложении. Если Участник, который не принадлежит указанной Организации c (но вошел в приложение), получает доступ к URL-адресу любой из страниц этой Организации, он / она может получить доступ к этой странице.

Есть ли что-то встроенное в. NET Core 3.0 или Web API, которое позволило бы нам запретить пользователям получать доступ к страницам организации, членом которых он не является? Единственный способ, которым я могу думать, это проверить, принадлежит ли Участник (на основе его MemberId) Организации (на основе OrganizationId). Однако эта проверка должна быть добавлена ​​к каждому контроллеру API. Там должен быть лучший способ! Любая помощь приветствуется ...

1 Ответ

0 голосов
/ 04 мая 2020

Решили, что я собираюсь: 1) Создать пользовательское исключение 2) Бросить его в базовый класс репо, который наследуют все мои производные классы 3) Распространить его и поймать в базовом классе контроллера с помощью ActionFilter 4) Вернуть пользователю сообщение 403 (с пользовательским сообщением об ошибке исключения) (Angular) 5) Попросить перехватчик HTTP Angular обработать сообщение об ошибке, что означает показать пользователю

Если у кого-то есть идея получше, пожалуйста, дайте мне знать.

...