Click here to Skip to main content
15,887,345 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Hi Team,

I am building API with .Net Core 3.0. While running a static scan we are getting "
Deserialization of Untrusted Data
. We are using dynamic object we are not in a possition to use protected object.
Initially, we tried with ReadAllText() still issue not resolved so changed to readtoEnd() with disposable object [using]. Still unable to fix. Please help to close this owasp fix

//deserialize JSON from file
              using (FileStream freader = new FileStream(file, FileMode.Open, FileAccess.Read))
              {
                  using (StreamReader sreader = new StreamReader(freader))
                  {
                      Json = sreader.ReadToEnd();
                  }
              }


What I have tried:

1) Tried with ReadAllText()

//string Json = System.IO.File.ReadAllText(file);
          //var cmsRes = ser.Deserialize<CMSDashboard>(Json);
          JsonSerializerSettings settings = new JsonSerializerSettings
          {
              TypeNameHandling = TypeNameHandling.All
          };
          response = JsonConvert.DeserializeObject<MemberShipKeyDetailResponse>(Json, settings);


2) Tried with ReadtoEnd()

<pre>  //deserialize JSON from file  
                using (FileStream freader = new FileStream(file, FileMode.Open, FileAccess.Read))
                {
                    using (StreamReader sreader = new StreamReader(freader))
                    {
                        Json = sreader.ReadToEnd();
                    }
Posted
Comments
F-ES Sitecore 12-Aug-20 8:02am    
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2328?view=vs-2019

Looks like you need to set TypeNameHandling to None and implement a custom serialization binder to restrict which types are deserialised.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900