まず、あなたの質問に答えるために:セキュリティシステムは、良いユーザーを悪いコードから保護するように設計されています。良いコードを悪いユーザーから保護するように明示的に設計されていません。アクセス制限は、部分的に信頼された敵対的なコードによるユーザーへの攻撃を軽減します。敵対的なユーザーからのコードへの攻撃を軽減するものではありません。脅威が敵対的なユーザーがあなたのコードを取得することである場合、あなたは大きな問題を抱えています。セキュリティシステムは、その脅威をまったく軽減しません。
次に、前述の回答のいくつかに対処するには、リフレクションとセキュリティの完全な関係を理解するには、細部に注意を払い、CASシステムの細部を十分に理解する必要があります。反省のためにセキュリティとアクセスの間に関係がないと述べている以前に投稿された回答は誤解を招き、間違っています。
はい、リフレクションを使用すると、「可視性」の制限をオーバーライドできます(場合によっては)。これは、アクセスとセキュリティの間に関係がないことを意味するものではありません。接続は、リフレクションを使用してアクセス制限を無効にする権利が、複数の方法でCASシステムに深く関係していることです。
まず、これを任意に行うには、CASシステムによってコードにプライベートリフレクション許可を付与する必要があります。これは通常、完全に信頼できるコードにのみ付与され、結局のところ、すでに何でも実行できます。
次に、新しい.NETセキュリティモデルで、アセンブリAにCASシステムによってアセンブリBの付与セットのスーパーセットが付与されているとします。このシナリオでは、アセンブリAのコードは、リフレクションを使用してBの内部を監視できます。
第三に、動的に生成されたコードをミックスに投入すると、事態は非常に複雑になります。「SkipVisibility」と「RestrictedSkipVisibility」の仕組み、および実行時にコードが吐き出されるシナリオでのリフレクション、アクセス制御、セキュリティシステム間の相互作用の変化についての説明は、私よりも時間とスペースがかかります。利用可能です。詳細が必要な場合は、ShawnFarkasのブログを参照してください。