Какова наилучшая практика хранения ключей и паролей для веб-сайта. Эти ключи предназначены для различных сторонних веб-сервисов. Лучше ли иметь их в файле Web.config или в базе данных или как-то зашифровать?
Защищенные методы хранения ключей, паролей для asp.net
Ответ 1
Предполагая, что ваша база данных недоступна из внешнего мира или что вы ее заблокировали, это будет предпочтительный способ хранения ключей. Это позволяет всем вашим приложениям извлекать из одного и того же хранилища ключей/паролей, что делает изменения очень быстрыми и легкими.
Ответ 2
Вы можете хранить зашифрованные значения в файле .config, и ASP.NET 2.0 расшифровывает их на лету.
Ваша конфигурация будет выглядеть примерно так:
<configSections>
   <section 
      name="sampleSection" 
      type="System.Configuration.SingleTagSectionHandler" 
   />
</configSections>
<MySecrets
   FavoriteMusic="Disco" 
   FavoriteLanguage="COBOL" 
   DreamJob="Dancing in the opening ceremonies of the Olympics" 
/>
а затем вы запустите следующее из командной строки в том же каталоге, что и ваш файл конфигурации:
aspnet_regiis -pef MySecrets .
От К. Скотта Аллена:
http://odetocode.com/Blogs/scott/archive/2006/01/08/2707.aspx
Ответ 3
Зависит от того, как часто меняются значения. Если они никогда не изменятся, я сохраню их в исходном коде.
Я бы держался подальше от хранения данных, которые изменяются в Web.Config, потому что его изменение приводит к перезапуску пула приложений.
Мое голосование состояло в том, чтобы хранить их в зашифрованном виде в базе данных и обеспечивать простой способ изменения значений (например, хранить значения в кеше и обновлять их, когда они изменяются пользователем).
