2009-06-02 10 views
1

私は、ローカルイントラネットサーバー上で実行されているいくつかのASP.NET Webアプリケーションを担当しています。社外のユーザーはサーバーにアクセスすることは想定されていませんが、必要でない場合は何も残したくありません。また、管理者だけがファイルシステムにアクセスできる必要があります。web.configのセクションの暗号化。したほうがいい?

web.configのアプリケーション設定と接続文字列セクションを暗号化する必要がありますか?私はこれが非常に頻繁に言及しているのを見ていない、そしてそれが過度のものかベストプラクティスではないかと思っていた。私は接続設定の文字列にパスワードを持っており、アプリの設定でADを照会するのに使うサービスアカウントのアカウント情報があります。

ところで:私は

Configuration webConfig = WebConfigurationManager.OpenWebConfiguration(System.Web.HttpContext.Current.Request.ApplicationPath); 
ConfigurationSection section = webConfig.Sections["connectionStrings"]; 

if (section != null && !section.SectionInformation.IsProtected) 
{ 
    section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider"); 
    webConfig.Save(); 
} 

答えて

3

web.configのアプリ設定と接続文字列セクションを暗号化する必要がありますか?

接続文字列にパスワードが含まれている場合は、他の合理的なオプションはありません。

統合セキュリティを使用してデータベースに接続する場合、情報の露出はデータベース名とサーバー名になりますが、問題はそれほどありません。しかし、より簡単なルールは従うと監査する方が簡単であるため、常に暗号化するという展開ルールを持つほうが簡単かもしれません。

独自のコードを記述するのではなく、aspnet_regiis.exeを使用してセクションを暗号化することもできます。オプションを表示するには、PowerShell(またはcmd)プロンプトにaspnet_regiis.exe -?と入力します。

1

を使用して暗号化するだろう、私は私のweb.configファイルを暗号化するための類似した何かをした、と私はそれを後悔していません。それを維持することは複雑ではなく、さらに別の防御層が追加されます。セキュリティはレイヤーで構築されているので、そうすることに間違いはありません。

関連する問題