2017-03-02 7 views
2

Git-hubにweb.configファイルを格納することに疑問がありますか?GitにWeb.configを保存する

これはセキュリティ上の脆弱性ですか?

また、異なる環境のweb.configは環境によって異なるため、web.configの異なるバージョンを同じに保つ方法は同じですか?

+0

あなたのビルド/リリースは何を使っていますか? Visual Studioから公開しますか? PowerShellスクリプト? TFS?チームシティ?たこ? – mason

+0

投稿からVS – SmartestVEGA

+0

すぐにその練習を中止することをお勧めします。我々は通常、プロジェクトをローカルで実行するために十分な設定を 'web.config'に入れています。ソースコード管理にチェックインする機密情報はありません。次に、ビルド時に(TFSで)コンフィグレーション変換を行い、展開のために変更が必要なすべての値をトークン化されたファイルに変換します。たとえば、 '__ConnectionStrings.ProjectDB__'などです。リリースされると、TFSタスクは配備される環境のweb.configファイルに適切な値を挿入します。もう1つの選択肢は、環境変数を使用してweb.configをまったく使用しないことです。 – mason

答えて

2

はい、そうです。

サーバーレベルの秘密を使用して、DB接続文字列などの機密情報を格納します。

IISでは、ASPNET_REGIISを使用できます。これにより、IISがアクセスできる秘密の設定を追加できますが、Webファイルではプレーンテキストで保持されません。

.NETコアでは、同じことを行う新しいMicrosoft.Extensions.SecretManager.Toolsがあります。

異なる環境では、have multiple web.config files、たとえばweb.release.configweb.debug.configとすることができます。

1

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を使用して設定する方法について説明しているブログ記事です。

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

関連する問題