Git-hubにweb.configファイルを格納することに疑問がありますか?GitにWeb.configを保存する
これはセキュリティ上の脆弱性ですか?
また、異なる環境のweb.configは環境によって異なるため、web.configの異なるバージョンを同じに保つ方法は同じですか?
Git-hubにweb.configファイルを格納することに疑問がありますか?GitにWeb.configを保存する
これはセキュリティ上の脆弱性ですか?
また、異なる環境のweb.configは環境によって異なるため、web.configの異なるバージョンを同じに保つ方法は同じですか?
はい、そうです。
サーバーレベルの秘密を使用して、DB接続文字列などの機密情報を格納します。
IISでは、ASPNET_REGIIS
を使用できます。これにより、IISがアクセスできる秘密の設定を追加できますが、Webファイルではプレーンテキストで保持されません。
.NETコアでは、同じことを行う新しいMicrosoft.Extensions.SecretManager.Tools
があります。
異なる環境では、have multiple web.config
files、たとえばweb.release.config
とweb.debug.config
とすることができます。
web.configファイル自体はセキュリティの問題ではありません。接続文字列のような内部にあるキーは、実際には非常に敏感で、バージョン管理の対象にはならないはずです。問題は、それらのキーをweb.config(またはその他のバージョン管理設定/設定ファイル)に入れずに管理する方法です。
キースは、サーバーレベルの秘密を使用するのが適切です。サーバーを自分で管理する場合は、設定方法を使用できますが、サービスを使用している場合は、キーを設定する必要があります。サーバレベルの秘密を設定
https://devcenter.heroku.com/articles/config-vars
Herokuの上How and where to define an environment variable on azure
別アズール
に
例では最初のステップです。 web.configからキーを取り出したら、それらをローカルに設定する必要があります。ローカルのmachine.configを使用して設定する方法について説明しているブログ記事です。
あなたのビルド/リリースは何を使っていますか? Visual Studioから公開しますか? PowerShellスクリプト? TFS?チームシティ?たこ? – mason
投稿からVS – SmartestVEGA
すぐにその練習を中止することをお勧めします。我々は通常、プロジェクトをローカルで実行するために十分な設定を 'web.config'に入れています。ソースコード管理にチェックインする機密情報はありません。次に、ビルド時に(TFSで)コンフィグレーション変換を行い、展開のために変更が必要なすべての値をトークン化されたファイルに変換します。たとえば、 '__ConnectionStrings.ProjectDB__'などです。リリースされると、TFSタスクは配備される環境のweb.configファイルに適切な値を挿入します。もう1つの選択肢は、環境変数を使用してweb.configをまったく使用しないことです。 – mason