Un método consiste en utilizar cualquier seguridad integrada que ofrece su DB, por lo que la contraseña no es un problema. El servidor obtiene acceso directo al servidor sin tener que usar una contraseña, pero debe configurar un usuario que solo tenga acceso desde el servidor web.
por ejemplo. Los DB como MySQL le permiten especificar qué servidores tienen acceso a él, restringir el acceso desde cualquier otro lugar, por lo que un hacker no puede acceder a su base de datos, excepto desde el servidor web. Esto reduce bastante la superficie de seguridad y le permite almacenar sus archivos de cadena de conexión en su SCM.
su todavía no es 100% seguro y cuando el hacker podría (a menudo con facilidad) piratear el servidor web y ver el DB de ella. Puede guardar la contraseña en otro lugar, pero eso simplemente está ocultando el problema: si el servidor web puede acceder a la contraseña, su hacker también puede hacerlo. (Nota, otros lugares para almacenar la contraseña incluyen el registro, un archivo separado como un archivo .udl o algo en/etc). Puede proteger este archivo para que solo el usuario del servidor web pueda leerlo, pero obviamente un servidor web pirateado puede leerlo.
Así que el siguiente paso es abstraer la conexión de DB para que quede fuera del servidor web, el método habitual es tener un proceso separado para almacenar su lógica comercial (por ejemplo, un servicio) que expone los métodos fijos: el servidor web simplemente llama al servicio que hace el trabajo y devuelve datos al código del servidor web.
Si un hacker derrota a su servidor web, lo único que pueden hacer es llamar a métodos en el servicio, que no tienen acceso directo a la base de datos por lo que no podría corromper o modificarla. Por lo general, habría pocos indicios al pirata informático de cuáles eran o cuáles eran los métodos de servicio, y el servicio tendría una buena cantidad de código de validación para todas las entradas, por lo que (con suerte) se rechazaría un mensaje creado por piratas informáticos. (use marcas de tiempo, contadores, etc. para tratar de derrotar el mensaje personalizado al servicio).
Este es el enfoque que utilizamos para un sistema de alta seguridad (hay mucho más que puede hacer para asegurar cada segmento de esta cadena utilizando mecanismos estándar de seguridad del sistema operativo). Las razones para hacer esto se hicieron muy claras para nosotros una vez que nuestro miembro de seguridad demostró un hack de IIS que le dio un shell remoto con privilegios de administrador. Cualquier cosa que haga para proteger sus configuraciones en el servidor web no tiene sentido si un hacker lo consigue.(y fue trivialmente fácil de hacer, ya que se corrigió, pero se encuentran exploits de 0 días todo el tiempo)
¡Perfecto! Esto era exactamente lo que estaba buscando. –