セキュリティとレジストリ (Visual Basic)
このページでは、レジストリにデータを格納する際のセキュリティに関連する事項について説明します。
アクセス許可
レジストリ キーが ACL (Access Control List) によって保護されているとはいえ、パスワードなどの秘密のデータを書式なしテキストでレジストリに格納するのは危険です。
レジストリの作業には、システム リソースや保護情報などへの不適切なアクセスを許可する場合があるため、セキュリティが損なわれる場合があります。 これらのプロパティを使用するには、レジストリ変数へのアクセスを制御する、RegistryPermissionAccess 列挙型の、読み取りアクセス許可および書き込みアクセス許可を持っている必要があります。 完全に信頼された状態で実行中のコード (既定のセキュリティ ポリシーでは、ユーザーのローカル ハードディスクにインストールされているすべてのコード) は、レジストリにアクセスするために必要なアクセス許可を持っています。 詳細については、RegistryPermission クラスのトピックを参照してください。
レジストリ変数は、RegistryPermission を持たないコードがアクセスできるメモリ位置に格納することはできません。 同様に、アクセス許可が付与されるとき、作業を行うために必要な最小限の権限が付与されます。
レジストリ アクセス許可のアクセス値は、RegistryPermissionAccess 列挙型で定義します。 各メンバーを次の表に示します。
値 |
レジストリ変数へのアクセス |
---|---|
AllAccess |
作成、読み取り、書き込み |
Create |
Create |
NoAccess |
アクセスなし |
Read |
Read |
Write |
Write |
レジストリ キーの値のチェック
レジストリの値を作成するときは、その値が既存の値である場合の処理を決めておく必要があります。 悪意のあるユーザーによって作成された別のプロセスが既に値を作成し、アクセス権を持っている可能性があります。 レジストリ値にデータを設定すると、そのデータを他のプロセスから利用できるようになります。 これを回避するために、GetValue メソッドを使用します。 このメソッドは、キーがまだ存在しない場合、Nothing を返します。
セキュリティに関するメモ |
---|
Web アプリケーションからレジストリを読み取る場合、現在のユーザーの ID は、Web アプリケーションで実装されている認証と偽装によって異なります。 |
参照
処理手順
チュートリアル: レジストリ キーの作成とその値の変更 (Visual Basic)
トラブルシューティング: レジストリの操作 (Visual Basic)