Almacenamiento de Web.config en Git

Tengo dudas sobre el almacenamiento de files web.config en Git-hub, ¿es recomendable?

¿Esto no es una vulnerabilidad de security?

También web.config para diferentes entornos será diferente en diferentes entornos, por lo tanto, ¿cómo mantener diferentes versiones de web.config es el mismo repository y twig?

Sí lo es.

Use secretos de nivel de server para almacenar información confidencial como cadenas de connection de BD.

En IIS puede usar ASPNET_REGIIS : le permite agregar una configuration secreta a la que IIS puede acceder, pero que no está contenida en text plano con los files web.

En .NET core, hay nuevas Microsoft.Extensions.SecretManager.Tools que hace lo mismo.

Para diferentes entornos puede tener múltiples files web.config , por ejemplo web.release.config y web.debug.config .

Su file web.config en sí no es un problema de security. Las keys que probablemente tenga dentro, como las cadenas de conexiones, son realmente muy sensibles y no deberían estar en control de versiones. El problema es cómo administrar esas keys sin tenerlas en el file web.config (o en cualquier otra versión de configuration controlada / file de configuration).

Keith tiene razón en que debería usar secretos a nivel de server. Si administra el server usted mismo, puede usar su método de configuration, pero si utiliza un service, deberá configurar las teclas según lo especifiquen.

Un ejemplo en Azure

Cómo y dónde definir una variable de entorno en azul

Otro en Heroku

https://devcenter.heroku.com/articles/config-vars

Configurar los secretos del nivel del server es solo el primer paso. Una vez que haya sacado las keys de la web.config, tendrá que configurarlas localmente. Aquí hay una publicación de blog que habla de configurarlos utilizando su machine.config local.

http://krow.tech/posts/ Keeping-Your-Secret-Configs-Private