Строка подключения .Net SQL Server - скрыть пароль от других разработчиков - PullRequest
6 голосов
/ 02 июня 2010

Мы переносим один из наших сайтов на ASP.Net. Мы не хотим использовать интегрированную защиту, которая использует учетную запись Windows для подключения к серверу SQL (не собираюсь вдаваться в причину, об этом просто не может быть и речи). Мы создали имя пользователя и пароль для подключения к SQL Server и хотели бы использовать это имя пользователя и пароль, однако мы также не хотим, чтобы другие разработчики видели эту информацию (легко читается из web.config) .... Я знаю он может быть зашифрован, но его также легко расшифровать разработчики - плюс шифрование снижает производительность.

Есть ли решение этой проблемы?

Ответы [ 5 ]

2 голосов
/ 02 июня 2010

хорошее руководство по Шифрование информации о конфигурации в приложениях ASP.NET 2.0

Только не давайте другим разработчикам ключ

Кроме того, вы можете заблокировать аутентификацию для SQL через установленные сертификаты. Таким образом, вы устанавливаете безопасность на основе клиента, а не пользователя. http://msdn.microsoft.com/en-us/library/ff649255.aspx

Наша стандартная практика - использовать один «Логин разработчика», используемый в базе данных разработки, который имеет ограниченный доступ и имеет другое имя пользователя / пароль для рабочей коробки. Разработчики не имеют доступа к рабочей коробке, только ведущие разработчики, а затем производственный web.config копируется через сценарий развертывания.

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

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

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

Вы не можете реально защитить пароль от разработчиков - кроме того, какой в ​​этом смысл? Что вы можете сделать, так это иметь отдельный сервер разработки, к которому у разработчиков есть доступ и производственная среда, к которой у них нет.

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

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

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

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

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

Нужен ли разработчикам доступ к файлу web.config? Если это так, я думаю, вам не повезло. Если нет, это означает, что им не нужно изменять файл web.config, измените разрешения для него, чтобы только администраторы и процесс asp.net могли читать файл.

...