Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 20025|Atbildi: 0

[ASP.NET] ASP.NET parametru caurlaides, garuma ierobežojumi un lietošanas piesardzības pasākumi.

[Kopēt saiti]
Publicēts 08.03.2018 10:18:07 | | | |
1. Problēmas cēloņi
Kļūdu statistikas pielikumā "Pēcizlaišanas problēmas" pēc projekta izlaišanas ir:   



Kā pieredzes uzkrāšana šīs problēmas, cēloņi un risinājumi tiks iekļauti kontrolsarakstā, tad:
Pirmais jautājums: Vai URL parametra augšējā robeža ir precīza atsauce? Kāda ir augšējā robeža?
Otrais jautājums: Kāpēc ir ierobežojums datiem, kad POST? Vai ierobežojums ir 128K?  
2. Problēmu analīze
1. Pirmais:
1) URL nav parametru augšējā ierobežojuma. Problēma patiesībā ir tā, ka IE ir garuma ierobežojums URL.
2) HTTP protokola specifikācija arī neierobežo URL garumu. Šis ierobežojums ir ierobežojums, ko nosaka konkrēta pārlūkprogramma un serveris. IE URL garuma ierobežojums ir 2083 baiti (2K+35). Citām pārlūkprogrammām, piemēram, Netscape, FireFox utt., Nav teorētiska garuma ierobežojuma, un tā ierobežojums ir atkarīgs no operētājsistēmas atbalsta. [Atsauce 1]
3) "Mainīga garuma parametri tiek nodoti caur URL" faktiski nozīmē, ka, iesniedzot veidlapu, tiek izmantota GET metode, nevis POST metode. Šo iespējamo kļūdu izraisa GET metodes izmantošana veidlapas datu iesniegšanai. Tā kā GET metode nodod URL datus serverim apstrādei.
4) Ņemiet vērā, ka šis ierobežojums ir viss URL garums, nevis tikai parametra vērtības datu garums.
5) Tā kā tas ir IE URL garuma ierobežojums, gan GET metodei, gan POST metodei ir šis ierobežojums.
(Lūdzu, skatiet saistīto dokumentu, lai iegūtu sīkāku informāciju par FORM GET un POST metodēm [Ref. 2])  
Ieteikumi:
1) Izprotiet vidi, kurā atrodas lietojumprogramma, piemēram, tīmekļa lietojumprogrammas pārlūkprogrammu un servera vidi, un izprotiet tās specifiskos parametru ierobežojumus.
2) Izmantojiet POST metodi, cik vien iespējams, lai iesniegtu sarežģītus datus. Piezīmes: Ja FORM neraksta metodes atribūtu, noklusējums ir izmantot GET metodi.
Secinājums (rakstiet uz kontrolsarakstu):
Iesniedzot datus, izmantojot GET metodi, IE vidē jāņem vērā URL garuma ierobežojums 2083 baiti.
2. Otrais:
1) Teorētiski POST nav lieluma ierobežojuma. HTTP protokola specifikācijai nav arī lieluma ierobežojuma.
2) "POST datiem ir lieluma ierobežojums 128K" nav pietiekami precīzs, POST datiem nav ierobežojumu, un servera procesora apstrādes jaudai ir ierobežojoša loma.
3) ASP programmām ir 100K datu garuma ierobežojums, kad pieprasījuma objekts apstrādā katru veidlapas lauku. Bet ar Request.BinaryRead šāda ierobežojuma nav. Risinājumus, kuriem nepieciešama vairāk nekā 100K veidlapas domēna datu apstrāde, lūdzu, skatiet tālāk [3. atsauce].
4) Paplašinājumā attiecībā uz IIS 6.0 Microsoft ir palielinājusi ierobežojumus drošības apsvērumu dēļ [4. atsauce]. Mums jāpievērš uzmanība arī:
   IIS 6.0 pēc noklusējuma ir ne vairāk kā 200 KB ASP POST datu, un ierobežojums ir 100 KB katram veidlapas laukam.
    IIS 6.0 augšupielādes failu noklusējuma lielums ir 4 MB.
    IIS 6.0 noklusējuma maksimālā pieprasījuma galvene ir 16 KB.
    Šie ierobežojumi nebija pieejami pirms IIS 6.0.
Ieteikumi:
1) Zinot darbības vides noklusējuma iestatījumus, jūs varat izstrādāt un ātri atrisināt radušās problēmas.
2) Jāapsver servera versija. Katrai IIS versijai ir atšķirīgi noklusējuma iestatījumi šiem parametriem, tāpēc, ja nepieciešams, atrodiet informāciju un sastādiet salīdzināšanas tabulu. Tādā veidā ir atsauce uz izstrādi un testēšanu.
3) Šie IIS 6.0 ierobežojumi faktiski ir tikai tā noklusējuma iestatījumi, un tos var modificēt faktiskajā lietojumprogrammas vidē.
    WINNT/system32/inetsrv/MetaBase.xml noklusējuma definīcija ir:
        AspBufferingLimit="4194304" atbilst augšupielādētā faila maksimālajam lielumam
        AspMaxRequestEntityAllowed="204800" atbilst maksimālajam datu apjomam POST
        ...
Secinājums (rakstiet uz kontrolsarakstu):
Izmantojot ASP, jāņem vērā, ka POST veidlapai ir ierobežojums 100 KB uz vienu lauku vispārējai lasīšanas apstrādei. Apsveriet, vai izmantot Request.Binary.





Iepriekšējo:asp.net mvc iestata veidlapas ziņu, lai atļautu HTML iesniegšanu
Nākamo:Sistēma.Linq.Dynamic
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com