Ohun pataki ti iṣoro naa ni pe awọn iwaju ati awọn ẹhin ẹhin nigbagbogbo pese awọn ipele atilẹyin oriṣiriṣi fun ilana HTTP, ṣugbọn ni akoko kanna ṣafikun awọn ibeere lati ọdọ awọn olumulo oriṣiriṣi sinu ikanni ti o wọpọ. Lati sopọ awọn ibeere gbigba awọn iwaju ati awọn ibeere sisẹ ẹhin, asopọ TCP ti o pẹ to ti fi idi mulẹ, nipasẹ eyiti awọn ibeere olumulo ti gbejade, ti a gbejade lẹgbẹẹ pq kan lẹhin ekeji, niya nipasẹ ọna HTTP Ilana. Lati ya awọn ibeere lọtọ, awọn akọle "Ipari-Akoonu" (pinnu iwọn apapọ ti data ninu ibeere) ati "
Iṣoro naa dide ti iwaju iwaju ba ṣe atilẹyin “Ipari-Akoonu” ṣugbọn kọju “Iyipada-Iyipada: chunked” (fun apẹẹrẹ, Akamai CDN ṣe eyi) tabi idakeji. Ti fifi koodu Gbigbe: chunked ni atilẹyin ni ẹgbẹ mejeeji, awọn ẹya imuse ti awọn olutọpa akọsori HTTP le ṣee lo fun ikọlu (fun apẹẹrẹ, nigbati opin iwaju ko foju kọ awọn laini bii “Iyipada-Iṣipopada: xchunked”, “Transfer-Encoding: chunked ", "Iyipada-Iyipada" : [tab] chunked", "X: X[\n] Gbigbe-Iyipada: chunked", "Iyipada-Iyipada[\n]: chunked" tabi "Iyipada-Iyipada: chunked", ati backend ni ifijišẹ lakọkọ wọn).
Ni ọran yii, ikọlu le firanṣẹ ibeere kan ti o ni awọn mejeeji “Ipari-Akoonu” ati awọn akọle “Iyipada-iyipada: chunked”, ṣugbọn iwọn ni “Akoonu-Ipari” ko ni ibamu si iwọn pq ti a ge, eyiti jẹ kere ju awọn gangan iye. Ti awọn ilana iwaju ati siwaju ibeere naa ni ibamu si “Ipari-Akoonu” ati ẹhin ẹhin n duro de bulọki lati pari ti o da lori “Iyipada-iṣipopada: chunked”, lẹhinna opin data ti o da lori “Iṣipopada-Encoding: chunked” yoo pinnu ni iṣaaju ati iru ti o ku ti ibeere naa olutayo yoo wa ni ibẹrẹ ti ibeere atẹle, ie. Olukọni naa yoo ni anfani lati so data lainidii pọ si ibẹrẹ ti ibeere ẹnikan ti a firanṣẹ ni atẹle.
Lati pinnu iṣoro naa ni apapọ iwaju-backend ti a lo, o le fi ibeere ranṣẹ bii eyi nipasẹ iwaju iwaju:
POST / nipa HTTP / 1.1
Gbalejo: example.com
Gbigbe-Eyi koodu: chunked
Akoonu-Ipari: 4
1
Z
Q
Iṣoro naa wa ti ẹhin ko ba ṣe ilana ibeere naa lẹsẹkẹsẹ ati duro de dide ti idina opin odo ipari ti data chunked. Fun kan diẹ pipe ayẹwo
Gbigbe ikọlu gidi kan da lori awọn agbara ti aaye ti o kọlu, fun apẹẹrẹ, nigbati o ba kọlu ohun elo wẹẹbu Trello, o le rọpo ibẹrẹ ti ibeere (data aropo bii “PUT / 1 / awọn ọmọ ẹgbẹ / 1234… x = x&csrf = 1234&orukọ olumulo=testzzz&bio=cake”) ati firanṣẹ ifiranṣẹ kan pẹlu ibeere atilẹba ti olumulo ẹni-kẹta ati Kuki ìfàṣẹsí pato ninu rẹ. Fun ikọlu lori saas-app.com, o wa ni ṣee ṣe lati paarọ koodu JavaScript ni idahun nipa fidipo rẹ ni ọkan ninu awọn aye ibeere. Fun ikọlu lori redhat.com, oluṣakoso inu ni a lo lati ṣe atunṣe si oju opo wẹẹbu ikọlu naa (ibeere fun fọọmu “POST /search?dest=../assets/idx?redir=//[imeeli ni idaabobo]/ HTTP/1.1").
Lilo ọna fun awọn nẹtiwọọki ifijiṣẹ akoonu jẹ ki o ṣee ṣe lati paarọ aaye ti o beere nirọrun nipa rọpo akọsori “Gbalejo:”. A tun le lo ikọlu naa lati majele awọn akoonu inu awọn ọna ṣiṣe akoonu akoonu ati jade data aṣiri kuro. Ipin ti ọna naa ni iṣeto ti ikọlu lori PayPal, eyiti o jẹ ki o ṣee ṣe lati da awọn ọrọ igbaniwọle ti awọn olumulo ranṣẹ lakoko ijẹrisi (ibeere iframe ti yipada lati ṣiṣẹ JavaScript ni aaye ti oju-iwe paypal.com/us/gifts, fun eyiti CSP (Afihan Aabo akoonu) ko lo).
O yanilenu, ni 2005 o wa
orisun: opennet.ru