Один из подходов заключается в использовании любой встроенной защиты, которую предлагает ваша БД, поэтому пароль не является проблемой. Сервер получает прямой доступ к серверу без использования пароля, но вы должны настроить пользователя, который имеет доступ только с самого веб-сервера.
например. Такие БД, как MySQL, позволяют вам указать, какие серверы имеют к нему доступ, ограничить доступ из любого места, поэтому хакер не может получить доступ к вашей БД, кроме как с веб-сервера. Это значительно снижает уровень безопасности и позволяет хранить файлы строк подключения в SCM.
Это все еще не на 100% безопасно, так как хакер может (часто легко) взломать ваш веб-сервер и просмотреть с него БД. Вы можете хранить пароль в другом месте, но это только затеняет проблему - если веб-сервер может получить доступ к паролю, ваш хакер тоже может. (обратите внимание, что другие места для хранения пароля включают реестр, отдельный файл, такой как файл .udl или что-то в / etc). Вы можете защитить этот файл, чтобы его мог прочитать только пользователь веб-сервера, а взломанный веб-сервер может его прочитать!
Таким образом, следующий шаг - абстрагирование соединения с БД так, чтобы оно находилось вне веб-сервера. Обычный метод - это отдельный процесс для хранения вашей бизнес-логики (например, службы), который предоставляет фиксированные методы - веб-сервер просто вызывает сервис, который выполняет работу и возвращает данные в код веб-сервера.
Если хакер побеждает ваш веб-сервер, все, что он может сделать, это вызвать методы службы, у них не будет прямого доступа к БД, поэтому он не сможет испортить или изменить его. Обычно хакеру будет мало намеков на то, что методы или службы были использованы, и служба будет иметь достаточный объем проверочного кода для всех входных данных, поэтому созданное хакером сообщение будет (надеюсь) отклонено. (используйте временные метки, счетчики и т. д., чтобы попытаться победить специально созданный обмен сообщениями с сервисом).
Это подход, который мы использовали для системы с высоким уровнем безопасности (вы можете сделать гораздо больше для защиты каждого сегмента этой цепочки с использованием стандартных механизмов безопасности ОС). Причины для этого стали очень понятными для нас, когда наш глава по безопасности продемонстрировал взлом IIS, который дал ему удаленную оболочку с правами администратора. Все, что вы делаете для защиты своих настроек на веб-сервере, бессмысленно, если хакер получит это. (и это было тривиально легко сделать - с момента исправления, но постоянно находят 0-дневные эксплойты)