Я занимаюсь разработкой проекта .Net Core Web API 2.2 и стараюсь защитить его как можно лучше.Это приложение будет подключено к базе данных SQL, а также будет отправлять электронные письма с сервера, и поэтому я хотел бы выяснить, как можно защитить мои конфиденциальные данные (например, строку подключения, пароль базы данных или даже пароль электронной почты для SMTP).аккаунт).
Я прочитал, что хранить пароли в виде простого текста в вашем файле где-то нехорошо, и одним из лучших способов является использование некоторых функций Microsoft Azure (где выпредоставить какой-то ключ, и он возвращает вам действительный пароль), который я еще не использовал.Кроме того, у меня нет подписки на Azure, и в настоящее время я не хотел бы идти в этом направлении.
Еще один метод, предложенный некоторыми из вас, ребята, заключался в сохранении всего пароля в Переменные среды и просто укажите это в приложении.В настоящее время я изучаю эту опцию, так как мое приложение будет размещено на «виртуальном сервере Windows», к которому у меня нет прямого доступа, и, следовательно, трудно (без прямого доступа) попасть туда и настроить переменные среды (даже не уверенесли это было бы возможно).
Наконец, до сих пор наилучшим вариантом (в случае невозможности использования упомянутых выше переменных) было на самом деле хранить соединения и пароли непосредственно в appsettings.JSON файл, но для их хеширования и расшифровки во время выполнения.Этот вариант для меня, безусловно, возможен;однако я хотел спросить (хотя это может быть весьма субъективно), ребята, правильный ли это подход или я что-то упустил, что могло бы помочь мне лучше защитить свое приложение от внешних угроз.
Любойпредложения или советы были бы более чем оценены, так как я не знаю, что делать дальше.
PS Я использую VSTS-репозиторий для хранения всего кода приложения, что может быть (я предполагаю) причиной, почемулюди предлагают как минимум хешировать ваши пароли при хранении в appsettings.json