Share via


アクセス許可要求

アクセス許可要求は、コードのセキュリティを認識する基本的な方法です。保護されたリソースへアクセスするアプリケーションには、アクセス許可要求を含める必要があります。詳細については、「コード アクセス セキュリティの基礎」を参照してください。要求によって、次の 2 つのことが実行できます。

  • コードの実行のために受け取る必要がある最小限のアクセス許可を要求する。

  • 実際に必要なアクセス許可だけをコードが確実に受け取ることができるようにする。

基本的なアクセス許可要求を示すコード例を次に示します。

<assembly: FileIOPermissionAttribute(SecurityAction.RequestMinimum, Write := "C:\test.tmp"), _
assembly: PermissionSet(SecurityAction.RequestOptional, Unrestricted := False)>  
[assembly:FileIOPermissionAttribute(SecurityAction.RequestMinimum, Write="C:\\test.tmp")]
[assembly:PermissionSet(SecurityAction.RequestOptional,Unrestricted=false)]

この例は、.NET Framework のセキュリティ システムに対し、C:\test.tmp への書き込みのアクセス許可を受け取らない限りコードは実行できないことを通知します。コードが、このアクセス許可を付与しないセキュリティ ポリシーに遭遇すると、PolicyException が発生し、コードは実行されません。この要求を使用すると、このアクセス許可が付与された場合だけコードが実行されることが明確になるため、アクセス許可が低すぎるために発生するエラーのことを心配する必要はありません。

また、この例は、これ以上のアクセス許可は不要であることをシステムに通知します。これがないと、コードは、セキュリティ ポリシーが選択したアクセス許可をそのまま受け取ることになります。追加のアクセス許可を与えても実害がない場合でも、より低いレベルのアクセス許可を付与することで、予測できないセキュリティ問題の発生を防ぐことができます。不要なアクセス許可をコードが受け取ると、セキュリティ問題につながることがあります。

コードが最小限の権限だけを受け取るように制限する別の方法として、拒否するアクセス許可のリストを指定する方法があります。一般的に、すべてのアクセス許可をオプションにして、特定のアクセス許可を要求から除外すると、アクセス要求は拒否されます。詳細については、「アクセス許可の拒否」を参照してください。

参照

その他の技術情報

安全なコーディングのガイドライン