Просто вопрос общей архитектуры.
Я знаю, что для веб-сайтов можно использовать функции, встроенные в IIS, для шифрования раздела строки подключения. Однако в чем я не уверен, так это ... Если я сделаю это, а затем скопирую файл web.config в другой проект, сможет ли новый проект по-прежнему дешифровать раздел строк подключения в файле конфигурации?
Где это становится проблемой - доступ к производственной базе данных. Мы не хотим, чтобы кто-либо имел возможность скопировать файл конфигурации из производства в свой проект и иметь карт-бланш доступ к производственной базе данных.
В настоящее время моя компания делает это, чтобы сохранить зашифрованную строку подключения в реестре сервера, а затем использовать собственный инструмент для чтения реестра и расшифровки значения на лету. Это не позволяет кому-либо просто заглянуть в реестр или веб-конфигурацию, чтобы увидеть строку подключения.
Кроме того, для приложений с толстым клиентом (WinForms, WPF и т. Д.) Это может быть немного более проблематично, поскольку еще раз, я не уверен, что трюк шифрования IIS будет работать, так как приложения не будут работать на IIS. В настоящее время у нас есть простое решение для этого, которое включает в себя то же самое домашнее приложение, но читает зашифрованную строку из двоичного файла и дешифрует на лету.
Кажется, что это очень сшито вместе, и мы ищем лучший способ сделать это (т. Е. Отраслевой стандарт, текущие технологии и т. Д.)
Итак, более общий вопрос заключается в следующем ...
Какие подходы вы использовали для защиты ваших строк подключения? Особенно, когда речь идет о нескольких типах приложений, обращающихся к нему, шифровании и т. Д.