Как безопасно хранить информацию о подключении к базе данных - PullRequest
6 голосов
/ 05 мая 2009

В приложении, которое должно открыть соединение с базой данных, имя пользователя / пароль должны быть отправлены в базу данных. Какой самый безопасный способ хранения и использования этих данных?

Ответы [ 4 ]

3 голосов
/ 05 мая 2009

Точный метод зависит от среды, но в целом вы сохраняете учетные данные в месте, доступном только для чтения пользователю, от имени которого работает ваше приложение. Например, в Windows вы должны хранить учетные данные в реестре в месте, защищенном ACL, чтобы его мог прочитать только этот пользователь. При желании вы можете использовать DPAPI для шифрования данных, чтобы они были дополнительно защищены. В Unix вы должны хранить его в файле, который был защищен chmod (и, возможно, зашифрован), чтобы только приложение могло его прочитать.

2 голосов
/ 06 мая 2009

Отличный вопрос.
Это проблема, с которой мы столкнулись - и придумали различные подходы.

Первый ответ: 1800 ИНФОРМАЦИЯ:

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

Не думаю, что вы получите лучшее всестороннее решение, чем это.

Другие методы, которые мы использовали (и отклонили):

  • Сохраните его в зашифрованном файле.
    • это работает только в том случае, если злоумышленник не может получить доступ к вашему коду, чтобы увидеть, как работает шифрование, поэтому в большинстве случаев он не так хорош.
  • Сохраните его в базе данных и попросите человека войти в систему, чтобы запустить приложение
    • это работает, если реальный человек все время запускает приложение
  • Положитесь на встроенные устройства безопасности, такие как в .NET (см. Ответ rwwilden).
    • это хорошее решение, если вы, например, магазин Microsoft.
2 голосов
/ 05 мая 2009

Это зависит от базы данных, которую вы используете. Для Microsoft SQL Server вы либо шифруете строку подключения к базе данных в конфигурации, либо используете встроенную защиту, где вы подключаетесь к базе данных, используя идентификатор приложения, из которого вы подключаетесь.

0 голосов
/ 05 мая 2009

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

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