Шифрование appSettings в web.config - PullRequest
       34

Шифрование appSettings в web.config

14 голосов
/ 10 сентября 2008

Я разрабатываю веб-приложение, которое требует, чтобы имя пользователя и пароль были сохранены в web.Config, оно также относится к некоторым URL-адресам, которые будут запрашиваться самим веб-приложением, а не клиентом.

Я знаю, что .Net Framework не позволяет обслуживать файл web.config, однако я все еще считаю плохой практикой оставлять такую ​​информацию в виде простого текста.

Все, что я прочитал до сих пор, требует от меня использования параметра командной строки или сохранения значений в реестре сервера. У меня нет доступа ни к одному из них, так как хост находится в сети, и у меня есть только доступ по FTP и панели управления (helm).

Кто-нибудь может порекомендовать какие-либо хорошие, бесплатные DLL-библиотеки шифрования или методы, которые я могу использовать? Я бы предпочел не развивать свою собственную!

Спасибо за отзывы, ребята, но я не могу давать команды и не могу редактировать реестр. Это должен быть утилита / помощник шифрования, но просто интересно, какой именно!

Ответы [ 3 ]

19 голосов
/ 10 сентября 2008

EDIT:
Если вы не можете использовать утилиту asp, вы можете зашифровать файл конфигурации, используя метод SectionInformation.ProtectSection .

Пример кода проекта:

Шифрование строк подключения внутри Web.config в ASP.Net 2.0

1 голос
/ 08 ноября 2016

Хотя на первый взгляд это кажется простым, я столкнулся с парой препятствий.

Итак, я предоставляю шаги, которые для меня работали нормально (для шифрования раздела appSettings ) с использованием провайдера шифрования по умолчанию:

Шифрование разделов в web.config:

  1. Открыть командную оболочку администратора (запустите от имени администратора! ). Командная строка будет на C:, что предполагается для следующих шагов.
    Далее предполагается, что приложение развернуто на D:\Apps\myApp - замените его на путь, который вы используете в шаг 3.
  2. cd "C:\Windows\Microsoft.NET\Framework64\v4.0.30319", в 32-битных системах Windows используйте Framework вместо Framework64
  3. cd /D "D:\Apps\myApp"
    Примечание: Переключатель /D автоматически изменит привод, если он отличается от вашего текущего привода. Здесь он изменит путь и диск, поэтому текущий каталог будет D:\Apps\myApp впоследствии.
  4. c:aspnet_regiis -pef appConfig .

Вы должны увидеть это сообщение:

Microsoft (R) ASP.NET RegIIS версия 4.0.30319.0 Утилита администрирования для установки и удаления ASP.NET на локальном компьютере. Авторское право (C) Microsoft Corporation. Все права защищены. Шифрование раздела конфигурации ... Преемник!

Вы также можете Расшифровать разделы в web.config: Это те же самые шаги, но с параметром -pdf вместо -pef для aspnet_regiis.

Также можно зашифровать другие разделы вашего web.config, например, вы можете зашифровать строки подключения раздел через:

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication"

Подробнее об этом можно прочитать здесь.


Примечание: Приведенное выше шифрование прозрачно для вашего веб-приложения, т. Е. Ваше веб-приложение не распознает, что настройки зашифрованы.
Вы также можете использовать непрозрачное шифрование , например, используя DPAPI от Microsoft или AES вместе с AES Class * 1067 платформы.
Как это сделать с DPAPI Я описал
здесь, в Stackoverflow . DPAPI работает очень похоже в том смысле, что использует ключи компьютера или учетные данные пользователя. Как правило, непрозрачное шифрование дает вам больше контроля, например, вы можете добавить SALT или использовать ключ на основе ключевой фразы пользователя. Если вы хотите узнать больше о том, как сгенерировать ключ из ключевой фразы, посмотрите здесь .

0 голосов
/ 10 сентября 2008

Использовать aspnet_setreg.exe http://support.microsoft.com/kb/329290

...