Newtonsoft JSONのTypeNameHandling.All
:セキュリティへの影響
TypeNameHandling.All
の脆弱性
TypeNameHandling.All
設定により、Newtonsoft JSONはJSONペイロード内のメタデータに基づいてタイプをインスタンス化できます。 便利ですが、これは重大なセキュリティリスクを生み出します。 攻撃者は、有害なタイプの敏arialializationを強制する悪意のあるJSONを作成し、任意のコード実行につながります。
たとえば、
TypeNameHandling.All
<code class="language-json">{ "$type": "Car", "Maker": "Ford", "Model": "Explorer" }</code>
と
。<code class="language-json">{ "$type": "System.CodeDom.Compiler.TempFileCollection", "BasePath": "%SYSTEMDRIVE%", "KeepFiles": "false", "TempDir": "%SYSTEMROOT%" }</code>
効果的な緩和:カスタムTempFileCollection
BasePath
TempDir
を使用することです。これにより、脱介入中に許可されるタイプを厳密に制御でき、悪意のあるタイプのインスタンス化を効果的に防止します。
カスタムを実装するには、これらの手順が含まれます
SerializationBinder
SerializationBinder
Newtonsoft JSON Serializerにカスタムを登録します
SerializationBinder
以上がNewtonsoft JSONのTypeNameHandlingは、すべてセキュリティリスクですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。