安全なクラス ライブラリの作成
クラス ライブラリは保護されているリソースやアンマネージ コードに頻繁にアクセスするため、クラス ライブラリにおけるプログラミング ミスは、セキュリティの脆弱性を露呈する可能性があります。 クラス ライブラリをデザインする場合は、コード アクセス セキュリティについて理解し、クラス ライブラリの安全を確保にするように注意する必要があります。
クラス ライブラリの安全を確保するために考慮する必要がある主な 3 つの要素について次の表で説明します。
セキュリティ要素 |
説明 |
---|---|
セキュリティ確認要求 |
確認要求は、コードの呼び出し元が必要なアクセス許可を持つことを要求するための機構として、クラス レベルおよびメソッド レベルに適用されます。 確認要求によりスタック ウォークが行われ、コードの呼び出し時に、そのコードを直接または間接的に呼び出すすべての呼び出し元がスタック上でチェックされます。 確認要求は、通常は、リソースを保護できるようにするためにクラス ライブラリで使用されます。 |
セキュリティ オーバーライド |
オーバーライドは、ランタイムによるセキュリティ上の決定事項を変更するための手段として、クラスまたはメソッドのスコープで適用されます。 呼び出されるタイミングは、呼び出し元がコードを使用するときです。 オーバーライドは、スタック ウォークを中止させ、既に特定のアクセス許可を与えられている呼び出し元のアクセスを制限するために使用します。
メモ
.NET Framework Version 4 におけるセキュリティの変更によって、いくつかのオーバーライドが廃止されました。これらの変更については、「.NET Framework 4 におけるセキュリティの変更点」を参照してください。
注意
オーバーライドの使用は危険を伴うため、慎重に行う必要があります。
|
セキュリティの最適化 |
.NET Framework 4 で導入された透過性は、コード アクセス セキュリティを最適化する新たな手段となります。 詳細については、「透過的セキュリティ コード」を参照してください。 |