私はNewtonsoft.Jsonをjsonの文字列を逆シリアル化するために使用していますが、私は未検証のjsonを使用していると不平を言っています。私はその後、Newtonsoft.Json.Schemaを使用して、チェックを追加しましたが、それは今でJSON文字列を検証する方法についてさらに.NETのFortify Json注入
var schema = JsonSchema.Parse(JsonConvert.SerializeObject(typeof(T)));
JToken token = JArray.Parse(json); -- Vulnerability
IList<string> errors;
if (token.IsValid(schema, out errors))
{
return JsonConvert.DeserializeObject<T>(json); -- Vulnerability
}
何かアドバイスを不平を言いますか?
メソッドDeserializeObject()は、 の入力をJSONに書き込みます。この呼び出しは、攻撃者が に任意の要素や属性をJSONエンティティに注入する可能性があります。
は 'complains'を定義するのに役立ちますです。例外またはエラーメッセージがありますか? – Igor
[これがどのように動くのか、私はFortifyをオフにして移動する](http://i.stack.imgur.com/K0v6i.png) – Will
Fortifyによって生成された正確なエラーメッセージで質問を更新してください – oldbam