TypeNameHandling.All
:在不信任數據啟用newtonsoft.json,可以根據傳入的JSON中的TypeNameHandling
TypeNameHandling.All
$type
安全含義
惡意參與者可以通過注入JSON中指定有害類型的屬性來利用>。 這使他們可以執行任意代碼或在目標系統上執行不需要的操作。
TypeNameHandling.All
惡意的JSON有效載荷看起來像這樣:$type
>
和<code class="language-csharp">public class Vehicle { public string Make { get; set; } public string Model { get; set; } }</code>
屬性會迫使創建A
對象,從而有可能在系統上啟動有害過程。 這繞過正常類型檢查並打開各種攻擊的門。<code class="language-json">{ "$type": "System.Diagnostics.Process", "Make": "Attack", "Model": "DeleteC:\ImportantFiles" }</code>
Make
緩解風險Model
$type
為了防止這種攻擊,請避免使用System.Diagnostics.Process
>從外部,不受信任的來源進行挑選JSON時使用。 而是使用
,以精心控制在避難化期間允許使用哪些類型,從而有效地白名單的安全類型。 這為處理多態性的估算化提供了一種更詳細,更安全的方法。
以上是在newtonsoft.json中使用`typenamehandling.ll.的詳細內容。更多資訊請關注PHP中文網其他相關文章!