Zakaj se izhod VPN in jezik brskalnika ne ujemata
Accept-Language zahteva jezik odgovora; VPN spremeni izvorni naslov. Ko je stran videti lokalizirana, trije vhodi odločijo, kateri je zmagal.
Odprite razvijalska orodja, naložite stran in preberite glave zahtevka, preden sklepate karkoli o VPN. Običajno boste našli vrstico Accept-Language, ki zahteva določen nabor jezikov, in ta vrstica prihaja iz nastavitev brskalnika, ne iz vašega izhodnega naslova. Francoščino govoreči uporabnik na izhodu v Tokiu še vedno pošilja francoščino, in spletno mesto, ki odgovarja v francoščini, odgovarja glavi. Tunel ne pušča samo zato, ker je stran prispela v znanem jeziku.
Najprej preberite glavo
V namiznem brskalniku odprite ploščo Omrežje, znova naložite, kliknite zahtevo za dokument in poglejte pod glave zahtevka. Iz terminala vidite isto brez brskalnika, vrednost pa lahko prepišete, da preizkusite vedenje spletnega mesta:
curl -sS -D /tmp/h1 -o /tmp/b1 https://example.com
curl -sS -D /tmp/h2 -o /tmp/b2 -H 'Accept-Language: fr,en;q=0.6' https://example.com
grep -o 'lang="[^"]*"' /tmp/b1 /tmp/b2
diff /tmp/b1 /tmp/b2 | head -40
Zdaj je telo na disku, zato primerjava zadeva stran in ne glave, ki morda ne bo nikoli poslana. Poglejte atribut lang oznake html in vidno besedilo, ker je Content-Language neobvezen in ga mnogi strežniki izpuščajo. Zato je lahko spletno mesto, ki na istem URL-ju preklopi celotno stran iz angleščine v francoščino, v primerjavi samo glav videti nespremenjeno. Če jezik dokumenta sledi glavi, medtem ko izhod ostane nespremenjen, je bila glava odločilni vhod in VPN s tem opažanjem nima ničesar skupnega.
Za ta preizkus uporabite drug profil brskalnika, ne preklopnika jezika samega spletnega mesta. Preklopnik običajno zapiše piškotek, kar je drug vhod, in na koncu boste merili piškotek namesto glave.
Kaj pomenijo vrednosti q in kaj ne
RFC 9110, razdelek 12.5.4, opredeljuje Accept-Language kot seznam prednostnih naravnih jezikov za odgovor. Vsak vnos lahko nosi težo od 0 do 1, obseg brez teže ima težo 1, teža 0 pa jezik označi kot nesprejemljiv. To je vrstni red prednosti in nič več.
Vrednost ni poročilo o lokaciji, ni ocena zaupanja in ni identiteta. Strežnik jo lahko prezre, postreže edini prevod, ki ga ima, ali pusti, da zmaga preusmeritev glede na državo. Pogajanje o vsebini je izbira strežnika, glava pa je vhod v to izbiro, ne ukaz.
Prav to ljudje spregledajo, ko lokalizirano stran obravnavajo kot preizkus lokacije. Glava navaja, katere jezike oseba raje bere, in prednost lahko potuje kamor koli.
Trije vhodi odločijo, kateri jezik dejansko dobite
Izolirajte jih enega za drugim, ker od zunaj ne vidite, kateri je zmagal:
- Glava. Preizkusite z drugim profilom, nastavljenim na drug seznam jezikov, in opazujte, ali se stran spremeni, medtem ko vse ostalo ostane nespremenjeno.
- Shranjena izbira. Preizkusite v zasebnem oknu brez piškotkov ali počistite shrambo spletnega mesta. Nastavitve računa in vnosi v localStorage lahko jezik pripnejo za mesece.
- URL ali preusmeritev. Preizkusite tako, da zahtevate izrecno jezikovno pot, na primer
/fr/, in spremljate kode stanja preusmeritve, ki temelji na izvornem naslovu.
Izvedite tri preizkuse v tem vrstnem redu in zapišite, kateri je premaknil rezultat. Eno nalaganje strani, ki spremeni jezik po vklopu VPN, je šibek dokaz, ker lahko ta vtis ustvarita tako preusmeritev kot predpomnjeni piškotek.
Kaj VPN spremeni in kaj ne
Tunel spremeni izvorni naslov, ki ga vidi strežnik, in z njim vse, kar strežnik sklepa iz geolokacije IP. Ne prepiše jezikovnih nastavitev brskalnika, ne izbriše shranjene nastavitve in ne spremeni URL-ja, ki ste ga vnesli. Ti vhodi ostanejo točno tam, kjer so bili, zato lahko stran obdrži stari jezik po tem, ko se izhod premakne.
Geolokacija dodaja svoj hrup. Podatkovne zbirke naslovov si nasprotujejo, izhod, registriran v eni državi, pa je lahko pripisan drugi, zaradi česar je preusmeritev glede na državo videti napačna iz razlogov, ki nimajo ničesar skupnega z vašim brskalnikom.
Hiter pregled jih loči: znova zahtevajte stran, zapišite naslov, ki ga predstavljate, in nato primerjajte jezik odgovora s svojim seznamom glav. Če se jezik ujema z vašim seznamom in ne z državo izhoda, je bila glava odločilni vhod in v tunelu ni ničesar za popraviti.
Kaj lokalizirana stran dokazuje in kaj ne
Tu je resnična točka o zasebnosti in je manjša od tiste, ki jo ljudje običajno izpostavijo. Popoln seznam jezikovnih nastavitev je vhod za prstni odtis in lahko razkrije nekaj o tem, kdo ste ali kaj berete. To je resnično razkritje nastavitve in ni isto kot dokaz, da je promet ušel iz tunela.
Lokalizirana stran ni pokazatelj uhajanja. Če res želite preizkusiti uhajanje, preverite izhodni naslov, ki ga vidi spletno mesto, pot razreševalnika, ki se uporablja za iskanje imen, in kandidate, ki jih razkrije sklad WebRTC. Ti preizkusi odgovorijo na vprašanje, na katero jezik strani ne more odgovoriti.
Naslednjič, ko bo videti, da spletno mesto pozna vašo državo, najprej odprite glave zahtevka. Če se jezik odgovora ujema s seznamom vašega brskalnika, ni nič uhajalo, in plast, ki si jo velja ogledati, je tista pred vami.