このページでは、レジストリにデータを格納する場合のセキュリティへの影響について説明します。
権限
レジストリ キーが ACL (アクセス制御リスト) によって保護されている場合でも、パスワードなどのシークレットをプレーン テキストとしてレジストリに格納することは安全ではありません。
レジストリを操作すると、システム リソースや保護された情報への不適切なアクセスが許可され、セキュリティが損なわれる可能性があります。 これらのプロパティを使用するには、レジストリ変数へのアクセスを制御する RegistryPermissionAccess 列挙体からの読み取りと書き込みのアクセス許可が必要です。 完全信頼で実行されているコード (既定のセキュリティ ポリシーでは、ユーザーのローカル ハード ディスクにインストールされているコード) には、レジストリにアクセスするために必要なアクセス許可があります。 詳細については、クラス RegistryPermission 参照してください。
レジストリ変数は、 RegistryPermission のないコードがアクセスできるメモリの場所に格納しないでください。 同様に、アクセス許可を付与する場合は、ジョブを完了するために必要な最小限の特権を付与します。
レジストリのアクセス許可のアクセス値は、 RegistryPermissionAccess 列挙体によって定義されます。 次の表では、そのメンバーについて詳しく説明します。
価値 | レジストリ変数へのアクセス |
---|---|
AllAccess |
作成、読み取り、書き込み |
Create |
創造する |
NoAccess |
アクセス権なし |
Read |
お読みください |
Write |
書く |
レジストリ キーの値のチェック
レジストリ値を作成するときは、その値が既に存在する場合の処理を決定する必要があります。 別のプロセス (おそらく悪意のあるプロセス) は、既に値を作成し、それにアクセスできる可能性があります。 レジストリ値にデータを格納すると、データは他のプロセスで使用できます。 これを回避するには、 GetValue
メソッドを使用します。 キーがまだ存在しない場合は、 Nothing
を返します。
Von Bedeutung
Web アプリケーションからレジストリを読み取る場合、現在のユーザーの ID は、Web アプリケーションに実装されている認証と偽装に依存します。
こちらも参照ください
.NET