API var savu versiju pārnēsāt pielāgotā pieprasījuma laukā, piemēram, API-Version. Parasts pārsūtīšanas starpniekserveris nedrīkstētu izmest šo lauku tikai tāpēc, ka nosaukums nav pazīstams. HTTP pieprasa pārsūtīt neatzītos laukus, ja vien netiek piemērots noteikts izņēmums vai konfigurēta politika.

Connection lauks ir viens no šādiem izņēmumiem. Salīdziniet šos ilustratīvos pieprasījumus:

API-Version: 2026-10
Connection: keep-alive

Šeit API lauks nav norādīts kā šim savienojumam lokāls. Nākamajā piemērā sūtītājs skaidri maina tā tvērumu:

API-Version: 2026-10
Connection: API-Version

Pārsūtīšanas starpniekserveris pirms pārsūtīšanas noņem Connection nosauktos laukus un noņem vai aizstāj pašas savienojumam raksturīgās instrukcijas. Tāpēc izcelsmei domātā lietojumprogrammas galvene nedrīkstētu parādīties šajā marķieru sarakstā.

Atrodiet vietu, kur lauks mainās

Salīdziniet klienta veidoto pieprasījumu, starpniekservera saņemtos un pārsūtītos laukus un to, ko saņēma izcelsme. Klients var izlaist galveni pirms tam, kad starpniekserveris to ierauga; konfigurēts filtrs to var apzināti noņemt; serveris var noraidīt pieprasījumu galveņu ierobežojuma pārsniegšanas dēļ.

Neizdariet secinājumu par klusu noņemšanu, pamatojoties vienīgi uz vecā izvietojumā ziņoto galvenes izmēra slieksni. Ierobežojumi un noraidīšanas uzvedība pieder faktiskajām komponentēm un konfigurācijai. Saglabājiet HTTP atbildi un attiecīgos žurnālus kopā ar novērojumu.

Ja HTTPS darbojas no gala līdz galam parastā CONNECT tunelī, starpniekserveris nevar nolasīt un selektīvi noņemt iekšējo API lauku. Tad galveņu pārbaude pieder TLS galapunktiem vai skaidri uzticamam pārbaudes starpniekam.

Saistītie raksti