Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 20025|Odpowiedź: 0

[ASP.NET] ASP.NET przejścia parametrów, limitów długości oraz środków ostrożności użytkowania.

[Skopiuj link]
Opublikowano 08.03.2018 10:18:07 | | | |
1. Przyczyny problemu
W załączniku "Post-Release Problems" do statystyk błędów po wydaniu projektu znajdują się:   



Jako nagromadzenie doświadczeń, te problemy, przyczyny i rozwiązania zostaną uwzględnione na liście kontrolnej, a następnie:
Pierwsze pytanie: Czy górna granica parametru URL jest dokładnym odniesieniem? Jaki jest górny limit?
Drugie pytanie: Dlaczego istnieje limit danych podczas POST? Czy limit to 128K?  
2. Analiza problemu
1. Pierwsze:
1) W URL-u nie ma górnej granicy parametrów. Problem polega na tym, że IE ma limit długości adresów URL.
2) Specyfikacja protokołu HTTP również nie ogranicza długości adresu URL. To ograniczenie jest narzucone przez konkretną przeglądarkę i serwer. Limit długości URL w IE wynosi 2083 bajty (2K+35). W przypadku innych przeglądarek, takich jak Netscape, FireFox itp., nie ma teoretycznego limitu długości, a jego limit zależy od wsparcia systemu operacyjnego. [Ref. 1]
3) "Parametry o zmiennej długości są przekazywane przez URL" oznacza, że przy wysyłaniu formularza używa się metody GET, a nie metody POST. Przyczyną tego potencjalnego błędu jest użycie metody GET do przesyłania danych z formularza. Ponieważ metoda GET przekazuje dane z adresu URL do serwera do przetwarzania.
4) Należy zauważyć, że ten limit dotyczy całej długości URL, a nie tylko wartości parametru.
5) Ponieważ jest to ograniczenie długości URL w IE, zarówno metoda GET, jak i POST mają to ograniczenie.
(Prosimy o zapoznanie się z powiązanym dokumentem, aby uzyskać szczegóły dotyczące metod GET i POST w FORM [Ref. 2])  
Rekomendacje:
1) Zrozumieć środowisko, w którym znajduje się aplikacja, takie jak przeglądarka i środowisko serwerowe aplikacji webowej, oraz zrozumieć jej specyficzne ograniczenia parametrów.
2) Używaj metody POST tak często, jak to możliwe, aby przesyłać złożone dane. Uwaga: Gdy FORM nie zapisuje atrybutu metody, domyślnie stosuje się metodę GET.
Podsumowanie (napisz do listy kontrolnej):
Przesyłając dane za pomocą metody GET, musisz wziąć pod uwagę limit długości URL wynoszący 2083 bajty w środowisku IE.
2. Drugie:
1) Teoretycznie POST nie ma limitu rozmiaru. Specyfikacja protokołu HTTP również nie ma ograniczenia rozmiaru.
2) "Limit rozmiaru 128K dla danych POST" nie jest wystarczająco dokładny, nie ma ograniczenia dla danych POST, a moc obliczeniowa procesora serwera odgrywa rolę ograniczającą.
3) W przypadku programów ASP istnieje limit długości danych do 100K, gdy obiekt Request przetwarza każde pole formularza. Ale w przypadku Request.BinaryRead nie ma takiego ograniczenia. W przypadku rozwiązań wymagających przetwarzania ponad 100K danych domenowych formularzy, prosimy o kontakt z [Ref. 3] poniżej.
4) W rozszerzeniu, dla IIS 6.0, Microsoft zwiększył ograniczenia ze względów bezpieczeństwa [Ref. 4]. Musimy także zwrócić uwagę na:
   IIS 6.0 domyślnie stosuje maksymalnie 200 KB danych ASP POST, a limit wynosi 100 KB na pole formularza.
    Domyślny rozmiar plików uploadu w IIS 6.0 to 4MB.
    IIS 6.0 domyślnie przyjmuje maksymalny nagłówek żądania 16KB.
    Te ograniczenia nie były dostępne przed IIS 6.0.
Rekomendacje:
1) Znajomość domyślnych ustawień środowiska działającego pomoże Ci zaprojektować i szybko rozwiązywać pojawiające się problemy.
2) Należy rozważyć wersję serwerową. Każda wersja IIS ma inne domyślne ustawienia tych parametrów, więc jeśli to konieczne, znajdź informacje i sporządź tabelę porównawczą. W ten sposób istnieje odniesienie do rozwoju i testowania.
3) Te ograniczenia IIS 6.0 to w rzeczywistości jego domyślne ustawienia, które można modyfikować w rzeczywistym środowisku aplikacji.
    W WINNT/system32/inetsrv/MetaBase.xml domyślna definicja brzmi:
        AspBufferingLimit="4194304" odpowiada maksymalnemu rozmiarowi przesłanego pliku
        AspMaxRequestEntityAllowed="204800" odpowiada maksymalnej ilości danych w POST
        ...
Podsumowanie (napisz do listy kontrolnej):
Używając ASP, musisz wziąć pod uwagę, że formularz POST ma limit 100KB na pole dla ogólnego przetwarzania odczytu. Rozważ, czy użyć Request.Binary.





Poprzedni:asp.net mvc ustawia post formularza, aby umożliwić przesłanie w HTML
Następny:System.Linq.Dynamic
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com