ホームページ > バックエンド開発 > C++ > Newtonsoft JSONのTypeNameHandlingは、外部JSONデータの脱派のために安全ですか?

Newtonsoft JSONのTypeNameHandlingは、外部JSONデータの脱派のために安全ですか?

Susan Sarandon
リリース: 2025-01-31 16:31:09
オリジナル
406 人が閲覧しました

Is Newtonsoft JSON's TypeNameHandling Safe for Deserializing External JSON Data?

Newtonsoft JSONのTypeNameHandling:外部JSONのセキュリティ考慮事項

NewtonsoftのJSONライブラリは、タイプ情報を含むJSONの降下用

を提供しています。 ただし、信頼されていない外部JSONソースでこれを使用すると、重大なセキュリティリスクが表示されます。 TypeNameHandling

外部JSONを なしで、TypeNameHandling.All> deserializerがJSONメタデータで指定された任意のタイプのインスタンスを作成できるようにします。 これにより、アプリケーションまたは.NETフレームワークに存在する有害なタイプを送信できる悪意のある俳優に脆弱性があります。 例の脆弱性:

SerializationBinder TypeNameHandling.All単純な

クラスを考えてみましょう

一見無害なjsonペイロード:

...正しく脱気になります。ただし、悪意のある俳優は、Car

のようなシステムクラスをターゲットとするペイロードを作成できます。
<code class="language-csharp">public class Car
{
    public string Maker { get; set; }
    public string Model { get; set; }
}</code>
ログイン後にコピー
一時的なファイルを管理するシリアル化可能なクラスである

には、ガベージコレクションでファイルを削除するファイナルライザーがあります。 悪意のあるペイロードは、このファイナルライザーに被害者のシステム上の任意のファイルに向けられ、ユーザーとのやり取りなしで意図しないファイル削除をもたらす可能性があります。 これはほんの一例です。他の多くのシステムクラスも同様の方法で活用される可能性があります。 したがって、これらのリスクを緩和するために有効になっている外部ソースからJSONをゆるくするときは、常にa
<code class="language-json">{
   "$type": "Car",
   "Maker": "Ford",
   "Model": "Explorer"
}</code>
ログイン後にコピー
を使用してください。 あなたが明示的に信頼して制御するタイプの敏aserializationのみを許可します。

以上がNewtonsoft JSONのTypeNameHandlingは、外部JSONデータの脱派のために安全ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート