首頁 > 後端開發 > C++ > 在newtonsoft.json中使用`typenamehandling.ll.

在newtonsoft.json中使用`typenamehandling.ll.

Patricia Arquette
發布: 2025-01-31 16:26:09
原創
361 人瀏覽過

> newtonsoft.json'sTypeNameHandling.All:在不信任數據

時,安全風險 Newtonsoft.json中的屬性決定瞭如何應對多態對象。 將其設置為

啟用newtonsoft.json,可以根據傳入的JSON中的屬性實例化類型。 但是,在處理不信任數據時,這會呈現出很大的安全漏洞。 > TypeNameHandlingTypeNameHandling.All $type

安全含義Is Using `TypeNameHandling.All` in Newtonsoft.Json Safe for Deserializing Untrusted Data?

惡意參與者可以通過注入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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板