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 サイトの他の関連記事を参照してください。