ホームページ >バックエンド開発 >C++ >Newtonsoft JSONのTypeNameHandlingを安全に処理して、脱力化攻撃を防ぐにはどうすればよいですか?

Newtonsoft JSONのTypeNameHandlingを安全に処理して、脱力化攻撃を防ぐにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-31 16:42:10895ブラウズ

How Can I Securely Handle TypeNameHandling in Newtonsoft Json to Prevent Deserialization Attacks?

TypeNameHandling JSONのシリアル化と誘導体化の過程で、特に外部データソースを処理する場合、TypeNameHandlingを慎重に処理することが不可欠です。 TypeNameHandling.allは、深部環境化の過程でタイプの推論を促進しますが、セキュリティリスクもあります。デバイスが信頼されていないJSONからのものである場合、この設定により、Newtonsoft JSONは指定されたメタデータで指定されたインスタンスを作成できます。

潜在的な危険:

攻撃者は、$型属性を含む悪意のあるJSONを送信できます。このタイプは、ゴミリサイクル中に被害者のシステム上のファイルを自動的に削除し、ファイルの整合性を危険にさらすことができます。

例:

次の悪意のあるJSON効果的な負荷を考慮してください:

適切なセキュリティ対策なしにこのJSONを識別した場合、インスタンス化されたtempFileCollectionタイプを識別し、指定されたパラメーターに従ってファイルを削除しようとします。

対策を緩和する:

このリスクを減らすために、TypeNameHandling.All Back -Sevensializationを使用する場合、カスタマイズされたサービス検証型を使用して、送信された型を確認する必要があります。このバインダーは、インスタンスを構築する前に参照されるタイプの安全性を検証できます。
<code class="language-json">{
   "$type": "System.CodeDom.Compiler.TempFileCollection",
   "BasePath": "%SYSTEMDRIVE%",
   "KeepFiles": "False",
   "TempDir": "%SYSTEMROOT%"
}</code>

以上がNewtonsoft JSONのTypeNameHandlingを安全に処理して、脱力化攻撃を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。