状態データの保護Securing State Data

機密データの処理または任意の種類のセキュリティ決定を行うアプリケーションは、そのデータを自らの制御下に置き、潜在的に悪意がある他のコードがそのデータに直接アクセスできないようにします。Applications that handle sensitive data or make any kind of security decisions need to keep that data under their own control and cannot allow other potentially malicious code to access the data directly. メモリ内でデータを保護する最善の方法は、そのデータをプライベート変数または内部変数 (同じアセンブリにスコープが限定されている) として宣言することです。The best way to protect data in memory is to declare the data as private or internal (with scope limited to the same assembly) variables. ただし、このようなデータでさえも、次のように注意が必要なアクセスの対象となります。However, even this data is subject to access you should be aware of:

  • リフレクション メカニズムを使用すると、オブジェクトを参照できる信頼性の高いコードはプライベート メンバーを取得および設定できます。Using reflection mechanisms, highly trusted code that can reference your object can get and set private members.

  • シリアル化を使用すると、信頼性の高いコードがプライベート メンバーを効率よく取得および設定できます (シリアル化された形式のオブジェクトにおいて対応するデータにアクセスできる場合)。Using serialization, highly trusted code can effectively get and set private members if it can access the corresponding data in the serialized form of the object.

  • デバッギング中にはこのデータを読み取ることができます。Under debugging, this data can be read.

自分のメソッドやプロパティがこれらの値を意図せずに公開することのないようにしてください。Make sure none of your own methods or properties exposes these values unintentionally.

関連項目See also