Maak die ontwikkelaarnutsgoed oop, laai die bladsy en lees die versoekopskrifte voordat jy enigiets oor die VPN aflei. Jy sal gewoonlik 'n Accept-Language-reël kry wat 'n bepaalde stel tale aanvra, en daardie reël kom uit jou blaaier se instellings, nie uit jou uitgangsadres nie. 'n Fransprekende op 'n Tokio-uitgang stuur steeds Frans, en 'n werf wat in Frans antwoord, antwoord die opskrif. Die tonnel lek nie net omdat die bladsy in 'n bekende taal aangekom het nie.

Lees eers die opskrif

In 'n lessenaarblaaier maak jy die Netwerk-paneel oop, herlaai, klik op die dokumentversoek en kyk onder versoekopskrifte. Vanaf 'n terminaal kan jy dieselfde sien sonder 'n blaaier, en jy kan die waarde oorheers om die werf se gedrag te toets:

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

Nou is die liggaam op skyf, so die vergelyking gaan oor die bladsy eerder as oor 'n opskrif wat dalk nooit gestuur word nie. Kyk na die html lang-attribuut en na die sigbare teks, want Content-Language is opsioneel en baie bedieners laat dit weg. 'n Werf wat die hele bladsy van Engels na Frans omskakel op dieselfde URL kan dus in 'n suiwer opskrifvergelyking onveranderd lyk. As die dokumenttaal die opskrif volg terwyl die uitgang vas bly, was die opskrif die deurslaggewende inset en is die VPN vir daardie waarneming irrelevant.

Gebruik 'n tweede blaaierprofiel eerder as die werf se eie taalskakelaar vir hierdie toets. 'n Skakelaar skryf gewoonlik 'n koekie, wat 'n ander inset is, en jy sal dan die koekie meet in plaas van die opskrif.

Wat die q-waardes beteken, en wat nie

RFC 9110 afdeling 12.5.4 definieer Accept-Language as 'n lys van voorkeurnatuurlike tale vir die antwoord. Elke inskrywing kan 'n gewig van 0 tot 1 dra, 'n reeks sonder 'n gewig het gewig 1, en 'n gewig van 0 merk 'n taal as onaanvaarbaar. Dit is 'n voorkeurorde, niks meer nie.

Die waarde is nie 'n liggingsverslag nie, nie 'n vertrouenspunt nie en nie 'n identiteit nie. 'n Bediener is vry om dit te ignoreer, om die enigste vertaling te lewer wat hy het, of om 'n landgebaseerde herleiding te laat wen. Inhoudsonderhandeling is die bediener se keuse, en die opskrif is 'n inset tot daardie keuse, nie 'n bevel nie.

Dit is die deel wat mense mis wanneer hulle 'n gelokaliseerde bladsy as 'n liggingstoets behandel. Die opskrif sê watter tale die persoon verkies om te lees, en 'n voorkeur kan oralheen reis.

Drie insette bepaal die taal wat jy werklik kry

Isoleer hulle een op 'n slag, want van buite kan jy nie sien watter een gewen het nie:

  • Die opskrif. Toets met 'n tweede profiel wat vir 'n ander taallys opgestel is, en kyk of die bladsy verander terwyl alles anders konstant bly.
  • 'n Gestoor keuse. Toets in 'n privaatvenster sonder koekies, of vee die werf se berging uit. Rekeninginstellings en localStorage-inskrywings kan 'n taal maande lank vaspen.
  • 'n URL of herleiding. Toets deur die eksplisiete taalbasis te versoek, soos /fr/, en deur die statuskodes te volg vir 'n herleiding wat op die bronadres gebaseer is.

Voer die drie toetse in daardie volgorde uit en skryf neer watter een die uitslag verander het. 'n Enkele bladsylaai wat die taal verander nadat jy die VPN aanskakel, is swak bewyse, want 'n herleiding en 'n gekaste koekie kan albei daardie indruk skep.

Wat die VPN verander, en wat nie

Die tonnel verander die bronadres wat 'n bediener sien, en daarmee saam alles wat die bediener uit IP-geoligging aflei. Dit herskryf nie die blaaier se taalvoorkeure nie, vee nie 'n gestoorde instelling uit nie en verander nie die URL wat jy getik het nie. Daardie insette bly presies waar hulle was, so 'n bladsy kan sy ou taal behou nadat die uitgang skuif.

Geoligging voeg sy eie geraas by. Adresdatabasisse stem nie met mekaar ooreen nie, en 'n uitgang wat in een land geregistreer is, kan na 'n ander gekarteer word, wat 'n landgebaseerde herleiding verkeerd laat lyk om redes wat niks met jou blaaier te doen het nie.

'n Vinnige deurlooptoets skei hulle: versoek die bladsy vars, let op die adres wat jy voorhou, en vergelyk dan die antwoordtaal met jou opskriflys. As die taal by jou lys pas eerder as by die uitgangsland, was die opskrif die deurslaggewende inset en is daar niks om in die tonnel reg te maak nie.

Wat 'n gelokaliseerde bladsy bewyse en nie bewys nie

Hier is 'n werklike punt oor privaatheid, en dit is kleiner as die een wat mense gewoonlik maak. 'n Volledige lys taalvoorkeure is 'n vingerafdruk-inset en kan iets onthul oor wie jy is of wat jy lees. Dit is 'n werklike openbaarmaking van voorkeur, en dit is nie dieselfde as om te bewys dat verkeer uit die tonnel ontsnap het nie.

'n Gelokaliseerde bladsy is nie 'n lekkasie-aanwyser nie. As jy werklik vir 'n lek wil toets, kyk na die uitgangsadres wat die werf sien, die resolverpad wat vir naamopsoeke gebruik word, en die kandidate wat 'n WebRTC-stapel blootstel. Daardie toetse beantwoord die vraag wat die bladsytaal nie kan antwoord nie.

Die volgende keer dat 'n werf blyk jou land te ken, maak eers die versoekopskrifte oop. As die antwoordtaal by jou blaaier se lys pas, het niks gelek nie, en die laag om na te kyk is die een voor jou.

Verwante artikels