2015-08-06 23 views
7

Występują błędy, takie jak Żądanie JSON było zbyt duże, aby można je było deserializować..aspnet: MaxJsonDeserializerMembers vs maxRequestLength

Szybkie wyszukiwanie na stackoverflow mówi, że powinieneś ustawić appsetting aspnet: MaxJsonDeserializerMembers, aby być wyżej, aby rozwiązać problem. Jednak dokumentacja msdn na AppSettings mówi

Caution 
    Setting this attribute to too large a number can pose a security risk. 

Spodziewam się, że Ostrzega przed ustawieniem tej wartości do wyższych liczb, aby zapobiec nikomu składania dużych ładunków, które mogą wpłynąć na system. Jednak biorąc pod uwagę, że już ustawiam wartość maxRequestLength na dużą liczbę, czy zmiana wartości aspnet: MaxJsonDeserializerMembers ma jakieś inne implikacje dla bezpieczeństwa?

Nie rozumiem, w jaki sposób 1001 małych członków json może stanowić większe zagrożenie dla bezpieczeństwa niż pojedynczy duży obiekt Json.

Odpowiedz

5

Aplikacje ASP.NET odrzucają żądania, które mają więcej niż 1000 takich elementów.

https://support.microsoft.com/en-us/kb/2661403

Aktualizacja zabezpieczeń firmy Microsoft adresy biuletynie MS11-100 zmienia domyślne maksymalna ilość przycisków formularzy, plików i członków JSON że ASP.NET przyjmą we wniosku do 1000. Ta zmiana została wprowadzona w celu wyeliminowania luki Denial of Service, którą jest biuletyn zabezpieczeń firmy Microsoft MS11-100 documents.