Хранение сообщений в базе данных, вопросы конфиденциальности - PullRequest
0 голосов
/ 06 февраля 2011

Я занимаюсь разработкой веб-приложения, в котором пользователи могут отправлять информацию через сообщения. Каков «нормальный способ» хранения подобных сообщений в базе данных? Я знаю, что самым простым способом было бы просто сохранить их в обычной текстовой форме, но я думаю, что это откроет некоторые проблемы конфиденциальности

Какой способ пойти, если вы хотите хранить сообщения, которые не должны быть доступны для поиска?

Ответы [ 3 ]

0 голосов
/ 06 февраля 2011

Если предположить, что проблема заключается в том, что пользователь должен видеть только отправленные ему сообщения, то, что вы ищете, называется Row Level Security.Каждое сообщение имеет получателя userId, отправителя userId, текст и, возможно, некоторые другие поля.

Когда защита на уровне строк полностью реализована, пользователь сможет видеть сообщения только там, где он является получателем.(хотя у вас может быть другая опция для просмотра сообщений, которые он отправил)

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

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

0 голосов
/ 06 февраля 2011

Шифрование сообщений с помощью одного ключа шифрования, как AES. Храните зашифрованные значения.

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

0 голосов
/ 06 февраля 2011

Если ваше приложение не имеет дело с особо важной информацией, такой как финансовые или медицинские данные, просто храните данные в виде простого текста, но тщательно контролируйте доступ к этим сообщениям из вашего приложения.Кроме того, убедитесь, что ваша база данных должным образом защищена:

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