Методы обеспечения безопасности между пользователями в многопользовательских приложениях - PullRequest
1 голос
/ 07 июня 2010

Я пишу многопользовательское приложение (.NET - C #), в котором данные каждого пользователя отделены от других, и нет данных, общих для пользователей. Важно убедиться, что ни один пользователь не имеет доступа к данным другого пользователя.

Каковы некоторые подходы для реализации безопасности на уровне базы данных и / или в архитектуре приложения для достижения этой цели? Например (и это полностью выдумано - я не утверждаю, что это хороший или плохой подход), включение столбца userID во все таблицы данных может быть подходом.

Я занимаюсь разработкой приложения на C # (asp.net) и SQL Server 2008. Я ищу варианты, которые являются родными для используемых мной инструментов или общих шаблонов.

Ответы [ 3 ]

1 голос
/ 07 июня 2010

Я считаю, что ассоциирование данных с пользователем через идентификатор пользователя является наиболее распространенным подходом.

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

0 голосов
/ 07 июня 2010

Почему бы не использовать какой-либо метод доступа (который может получить доступ к какому файлу и имеет права на чтение, запись и удаление), который подходит вашей проблеме, если он работает с вашей проблемой (я понятия не имею)? Например:

  • Manadatory Access Control, известный как (MAC)
  • Дискреционный контроль доступа (ЦАП)
  • Управление доступом на основе ролей (RBAC)
  • Управление доступом на основе правил (RBAC)

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

0 голосов
/ 07 июня 2010

Вы могли бы сделать это 1. Создайте таблицу dbo.users и имейте следующие столбцы, обратите внимание, что это не завершено

table users
 -pid [uniqueidentifier]
 -userfname
 -userlname
 -useremail
 -userpwd




table userdata
  - datapid 
  - pid
  - [other columns to hoold data]

как только ваш пользователь аутентифицируется по этой таблице, вы просто используете ppid для возврата, ввода и обновления любых данных, связанных с этим пользователем

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