Безопасные методы хранения ключей, паролей для asp.net
Как лучше хранить ключи и / или пароли для веб-сайта? Эти ключи предназначены для различных сторонних веб-сервисов. Лучше ли иметь их в файле Web.config, или в базе данных, или как-то зашифровать?
3 ответа
Предполагая, что ваша база данных недоступна из внешнего мира или что она правильно заблокирована, это будет предпочтительным способом хранения ключей. Это позволяет всем вашим приложениям извлекать из одного хранилища ключей / паролей внесение изменений очень быстро и легко.
Вы можете сохранить зашифрованные значения в файле.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
Зависит от того, как часто значения меняются. Если они никогда не изменятся, я бы оставил их в вашем исходном коде.
Я бы держался подальше от хранения данных, которые изменяются в Web.Config, потому что его изменение вызывает перезапуск пула приложений.
Мой голос будет состоять в том, чтобы хранить их в зашифрованном виде в базе данных и предоставлять простой способ изменения значений (например, сохранять значения в кеше и обновлять их, когда они изменяются пользователем).