ENGLISH

JSON オブジェクトを使用した .NET アプリケーションの保護

JSON はアプリケーション内のオブジェクトとデータを共有するために広く使用されているフォーマットです。JSON オブジェクトのシリアライズとデシリアライズを行う .NET アプリケーションを保護するためには、特別な配慮を行う必要があります。次のような基本的なクラス Employee について考えてみましょう。

これを JSON にシリアライズすると、オブジェクトは文字列として保存されます。

もしこの時点でコンソールに書き出された場合、この「json」文字列は次のように表示されます。

{"FirstName":"Jane","LastName":"Doe","Email":"jd@example.com"}
 

この Json 文字列に出力されたプロパティの元の名称は、FirstName、Lastname、それに Email です。このアプリケーションの別の場所で、このオブジェクトは .NET クラスとしてデシリアライズされます。

デシリアライズ作業のメカニズムでは、元のプロパティ名に依存してデータをペアリングしますが、デフォルトでは、Dotfuscator for .NET はこれらのプロパティ名を変更してしまいます。このため、デシリアライズが正しく動作するように、Dotfuscator for .NET の「名前の変更」タブで FirstName、Lastname、Email のプロパティをリネーム処理から除外するように指示する必要があります。

これにより、次のような正しい出力が行われます。

Deserialized: Jane Doe jd@example.com
 

ここでは JSON のシリアライズとデシリアライズの一例についてご紹介しました。他にも JSON オブジェクトをシリアライズ・デシリアライズする方法はありますが、基になる概念は難読化に関して同じです。プロパティ名がそのプロパティの文字列表現と比較される場合、Dotfuscator for .NET による名前の変更からの除外が必要になる可能性があります。

本トピックに関する完全なサンプルは、ここからダウンロードできます。

このトピックについてのご意見、または他に取り扱ってほしいトピックがございましたら、info@agtech.co.jp までお気軽にお問合せください。

https://www.preemptive.com/blog/article/1045-protecting-applications-that-use-json-objects/107-support-corner

(July 23, 2018 Johnny 著)

一覧に戻る

Contactお問い合わせ

お気軽にお問い合わせください。

お問い合わせ

    必須会社名

    個人のお客様は「個人」と入力してください。

    必須お名前
    必須メールアドレス
    必須メールアドレス(確認)
    必須ライセンス ありなし
    ダウンロード目的