2011-09-16 9 views
5

管理者がASP .NET MVC Webアプリケーションで許可されているユーザーグループを簡単に変更できるようにするために、私はappSettingsとしてWeb.configにグループ名を入れました。機密情報をWeb.configファイルに入れることは悪い習慣ですか?

<add key="User" value="VDP ICMD Users"/> 
<add key="SuperUser" value="VDP ICMD Super Users"/> 
<add key="Administrator" value="VDP ICMD Administrator"/> 

実際のActive Directoryグループ名に関連する値です。その後、私のコントローラでは、私のカスタムAuthorizeAttributeを使用して、私は単に私の質問がある

[AuthorizeAD(GroupKeys = "User")] 

を書くことができ、彼らが容易に変更することが可能Web.configファイルのグループ名などの機密情報を置くことは悪い習慣ですか?誰かがWeb.configファイルにアクセスするのは、サーバー自体にログインする以外に簡単ですか?

+3

誰かがあなたのweb.configにアクセスしてweb.configにアクセスできる場合、あなたはもっと大きな問題を抱えているかもしれません... –

+0

グループ名は、あなたのWebサイトでのADに対する正しい認証の鍵です。あなたの組織の誰かが、より制限の厳しいグループにいるので、Webにアクセスして特典を引き上げることができます。設定ファイルを編集してグループ名を追加/編集して書き込み/編集権限を昇格します。例えば –

+0

合意@ジャスティン・サティア私はそれについて心配していません、それはsys管理者の仕事です。誰かがサーバにアクセスすることなく設定ファイルを見たり変更したりすることができるのであれば、私はもっと心配です。 – link664

答えて

4

MSDNの記事を読みます。閲覧可能なファイルではないので、誰かがweb.configを盗んで欲しいのなら、あなたのサーバに入る必要があります。 (もう1つの選択肢は、ASP.NETフローの既存または将来のセキュリティホールですが、以前は起こっていましたが、これが起こりにくいケースであることを願っています)。

できるだけ機密性の低い情報を保存することをお勧めしますが、何も持たないのは本当に難しいです。

あなたの設定ファイルの賢明な情報を暗号化できます。 Hereあなたはそれを行う方法を説明したウォークスルーを持っています。

2

は一般に、配備フォルダにアクセスできるユーザーが内部的に盗んだプレーンテキストのパスワードを置かない限り、安全である必要があります。

IISとASP.NETエンジンは、Webからのweb.configファイルへのアクセスを防ぐように設計されているため、このようなファイルはブラウザーやHTTP接続経由で盗聴または盗まれることはありません。

経験に基づいて、これらの情報をデータベースの構成テーブルに入れて、あまりにも多くのロジックを持たないようにそのような設定値の読み取りをカプセル化するASP.NETコードにラッピングクラスを作成しますそれらのデータをすべて取り込むことができます。

データベースの設定パラメータのメリットは、導入が簡単で容易ではなく、手動によるファイル編集や自動バックアップなしで簡単に変更でき、主な問題に答えるために、データベースは不正アクセスから保護されている必要があります。

+0

私の例では、Web.configに情報を入れるのはセキュリティ上の面で問題がありますが、それ以外の理由でデータベースに入れられると言いました。 – link664

+0

誰もがWebサーバーを内部から触れることができない限り、それは問題ありません。データベースはより安全でなければならないので、データベースを使用します。一方、誰かがweb.configに触れることができれば、そこのセキュリティを無効にすることもできます。 –

+0

正確に。 @ Justin Satyrが言っているように、もし彼らがサーバと私のweb.configにアクセスすれば、私はより大きな問題を抱えています。彼らはセキュリティを無効にするだけでなく、アプリケーションを別のデータベースに置き換えて、他の多くのものを変更することができます。 – link664

0

いいえこれは特定のコンテキストでは安全ではありません。

グループ名は、あなたのWebサイトでADに対して正しく機能するための鍵です。あなたのシナリオでは、あなたの組織内の誰かがより高い制限を持つグループにいる場合、web.configファイルにアクセスしてグループ名を追加/編集するだけで特権を昇格させることができます給料や契約のようなもの、あるいは会社のCEO計画さえも含みます。あなたはそのようなトラブルを欲しいですか?それはそれはあなたのinfraestructureやセキュリティポリシーに依存web.configファイルにアクセスするには簡単ですかどう

How to encrypt Web.config

+0

しかし、わかっている限り、Web.configファイルにアクセスする唯一の方法は、ホスティングサーバーにアクセスすることです。@ JustinSatyrがコメントしました。 – link664

関連する問題