Êrîşek li ser pergalên pêşîn-paş-paş-end ku dihêle ku em di nav daxwazên sêyemîn-sêyemîn de bisekinin

Eşkere kirin hûrguliyên êrîşek nû li ser malperên ku modelek pêşîn-paş-paş bikar tînin, mîna yên ku di nav torên radestkirina naverokê, balanskerên barkirinê an proxeyan de derbas dibin. Êrîş dihêle, bi şandina hin daxwazan, naverokên daxwazên din ên ku di heman mijarê de di navbera pêş û paşîn de têne hilberandin, bikeve. Rêbaza pêşniyarkirî bi serfirazî hate bikar anîn da ku êrîşek organîze bike ku îmkana girtina pîvanên erêkirinê yên bikarhênerên karûbarê PayPal, ku wekî beşek ji bernameyekê ji lêkolîneran re 40 hezar dolar daye lêkolîneran da ku di derheqê hebûna qelsiyên nepatched de agahdar bikin. Êrîş ji bo malperên ku tora radestkirina naverokê ya Akamai bikar tînin jî tê sepandin.

Kêşeya pirsgirêkê ev e ku pêş û paşverû bi gelemperî ji protokola HTTP-ê re astên cûda piştgirî peyda dikin, lê di heman demê de daxwazên bikarhênerên cihêreng di kanalek hevpar de vedihewînin. Ji bo girêdana daxwazên wergirtina pêşiyê û daxwazên pêvajoyek paşîn, pêwendiyek TCP-ya demdirêj tê saz kirin, bi navgîniya ku daxwazên bikarhêner têne veguheztin, li ser zincîrê yek li dû hev têne veguheztin, bi riya protokola HTTP ve têne veqetandin. Ji bo veqetandina daxwazan, sernavên "Naverok-Drêjahî" (mezinahiya giştî ya daneyên di daxwaznameyê de diyar dike) û "Veguheztin-Encoding: perçekirî"(Destûrê dide we ku hûn daneyên li parçeyan veguhezînin, blokên cûrbecûr ên di formê de" {Mezinahî \ r \ n {block} \ r \ n {block} \ r \ n0 ").

Pirsgirêk çêdibe heke pêşiyê tenê "Naverok-Drêjahî" piştgirî bike lê "Veguheztin-Encoding: perçekirî" paşguh bike (mînak, Akamai CDN ev kir) an berevajî. Ger Veguheztin-Encoding: chunked ji her du aliyan ve were piştgirî kirin, taybetmendiyên bicîhkirinê yên parserên sernavê HTTP dikarin ji bo êrîşekê werin bikar anîn (mînak, dema ku dawiya pêşîn rêzên mîna "Veguhezandin-Encoding: xchunked", "Veguheztin-Encoding: perçekirî" paşguh dike. ”, “Transfer-Encoding” :[tab]qelişkirî”, “X: X[\n]Veguhestinê-Encoding: perçekirî”, “Transfer-Encoding[\n]: perçekirî” an “Transfer-Encoding : chunked”, û paşîn bi serfirazî wan pêvajoyê dike).

Di vê rewşê de, êrîşkar dikare daxwaznameyekê bişîne ku hem sernavên "Naverok-Deng" û "Transfer-Encoding: chunked" dihewîne, lê mezinahiya di "Naverok-Drêjahî" de bi mezinahiya zincîra perçekirî re nagunce. ji nirxa rastîn piçûktir e. Heke pêşiyê daxwazê ​​li gorî "Naverok-Drêjahî" bişopîne û pêşde bixe û paşverû li benda qedandina blokê li ser bingeha "Veguhezandin-Encoding: perçekirî" be, wê hingê dawiya daneya li ser bingeha "Veguheztin-Encoding: perçekirî" dê ji zû ve hatî destnîşankirin û tiliya mayî ya daxwazê ​​êrişker dê di destpêka daxwaza din de be, I.E. êrîşkar dê bikaribe daneyên keyfî bi destpêka daxwaza kesek din ve girêbide ku paşê hatî şandin.

Êrîşek li ser pergalên pêşîn-paş-paş-end ku dihêle ku em di nav daxwazên sêyemîn-sêyemîn de bisekinin

Ji bo destnîşankirina pirsgirêkê di berhevoka paşverû ya pêşîn de, hûn dikarin daxwazek bi vî rengî bi riya pêşgir bişînin:

POST /li ser HTTP/1.1
Mêvandar: example.com
Veguheztin-Encoding: perçekirî
Dirêj-naverok: 4

1
Z
Q

Pirsgirêk heye heke paşîn tavilê daxwazê ​​neke û li benda hatina bloka sînorê sifir a paşîn a daneya perçebûyî bimîne. Ji bo kontrolek bêkêmasî amade kirin Vebijêrkek taybetî ya ku di heman demê de ji bo veşartina "veguhastina veguhastinê" ji pêşgîriyê ve jî metodên gengaz e.

Pêkanîna êrîşek rastîn bi kapasîteyên malpera êrîşkirî ve girêdayî ye, mînakî, dema ku êrîşî serîlêdana webê ya Trello bike, hûn dikarin destpêka daxwazê ​​biguhezînin (daneyên wekî "PUT /1/endam/1234... x=x&csrf =1234&username=testzzz&bio=cake”) û peyamek bişînin tevî daxwaza orîjînal a bikarhênerek sêyemîn û Cookie-ya rastkirinê ya ku tê de hatî destnîşan kirin. Ji bo êrîşek li ser saas-app.com, derket holê ku meriv di bersivê de koda JavaScript-ê bi cîh kirina yek ji pîvanên daxwazê ​​ve biguhezîne. Ji bo êrîşa li ser redhat.com, kargêrek navxweyî hate bikar anîn ku beralîkirina malpera êrîşkar (daxwazek forma "POST /search?dest=../assets/idx?redir=//[email parastî]/ HTTP/1.1").

Bikaranîna rêbazê ji bo torên radestkirina naverokê ev gengaz kir ku bi tenê cîhgirtina malpera daxwazkirî bi guheztina sernavê "Host:". Di heman demê de êrîş dikare were bikar anîn da ku naveroka pergalên cachkirina naverokê jehr bike û daneyên nepenî yên cached derxe. Pîvana rêbazê organîzekirina êrîşek li ser PayPal bû, ku îmkan da ku şîfreyên ku ji hêla bikarhêneran ve hatine şandin di dema erêkirinê de were girtin (daxwaza iframe hate guheztin ku JavaScript di çarçoweya rûpela paypal.com/us/gifts de bicîh bike, ji bo kîjan CSP (Siyaseta Ewlekariya Naverokê) nehat sepandin).

Balkêş e ku di sala 2005 de hebû pêşniyar kirin teknolojiyek xapandina daxwazê ​​ya esasî ya ku destûrê dide te ku hûn daneyan di nav proxeyên cachkirinê de (Tomcat, squid, mod_proxy) bixapînin an jî astengkirina dîwarê fîşekê derbas bikin bi destnîşankirina çend daxwazên "GET" an "POST" di yek danişîna HTTP de.

Source: opennet.ru

Add a comment