De ce ieșirea VPN și limba browserului nu coincid
Accept-Language cere o limbă de răspuns; VPN-ul schimbă adresa sursă. Când un site pare localizat, trei intrări decid care a câștigat.
Deschideți instrumentele pentru dezvoltatori, încărcați pagina și citiți anteturile cererii înainte de a trage vreo concluzie despre VPN. De obicei veți găsi o linie Accept-Language care cere un anumit set de limbi, iar acea linie vine din setările browserului, nu din adresa de ieșire. Un vorbitor de franceză pe o ieșire în Tokyo trimite în continuare franceză, iar un site care răspunde în franceză răspunde antetului. Tunelul nu pierde doar pentru că pagina a ajuns într-o limbă cunoscută.
Citiți mai întâi antetul
Într-un browser de desktop, deschideți panoul Rețea, reîncărcați, faceți clic pe cererea documentului și priviți sub antetele cererii. Din terminal vedeți același lucru fără browser și puteți suprascrie valoarea pentru a testa comportamentul site-ului:
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
Acum corpul este pe disc, deci comparația privește pagina, nu un antet care poate nu va fi trimis niciodată. Uitați-vă la atributul lang al etichetei html și la textul vizibil, deoarece Content-Language este opțional și multe servere îl omit. Așadar, un site care schimbă întreaga pagină din engleză în franceză pe același URL poate părea neschimbat într-o comparație doar a antetelor. Dacă limba documentului urmează antetul în timp ce ieșirea rămâne fixă, antetul a fost intrarea decisivă, iar VPN-ul nu are nimic de-a face cu acea observație.
Pentru acest test folosiți un al doilea profil de browser, nu selectorul de limbă al site-ului. Un selector scrie de obicei un cookie, care este altă intrare, și veți ajunge să măsurați cookie-ul în locul antetului.
Ce înseamnă valorile q și ce nu
RFC 9110, secțiunea 12.5.4, definește Accept-Language ca o listă de limbi naturale preferate pentru răspuns. Fiecare intrare poate purta o pondere de la 0 la 1, un interval fără pondere are ponderea 1, iar o pondere de 0 marchează o limbă ca inacceptabilă. Aceasta este o ordine de preferință și nimic mai mult.
Valoarea nu este un raport de locație, nici un scor de încredere, nici o identitate. Un server este liber să o ignore, să servească singura traducere pe care o are sau să lase o redirecționare pe țară să câștige. Negocierea conținutului este alegerea serverului, iar antetul este o intrare pentru acea alegere, nu o comandă.
Aceasta este partea pe care oamenii o ratează când tratează o pagină localizată ca test de locație. Antetul declară ce limbi preferă persoana să citească, iar o preferință poate călători oriunde.
Trei intrări decid limba pe care o primiți de fapt
Izolați-le una câte una, pentru că din exterior nu vedeți care a câștigat:
- Antetul. Testați cu un al doilea profil configurat pentru o altă listă de limbi și observați dacă pagina se schimbă în timp ce restul rămâne constant.
- O alegere salvată. Testați într-o fereastră privată fără cookie-uri sau ștergeți stocarea site-ului. Setările contului și intrările din localStorage pot fixa o limbă luni întregi.
- Un URL sau o redirecționare. Testați cerând calea explicită a limbii, de exemplu
/fr/, și urmărind codurile de stare ale unei redirecționări bazate pe adresa sursă.
Rulați cele trei teste în această ordine și notați care a mișcat rezultatul. O singură încărcare de pagină care schimbă limba după ce activați VPN-ul este o dovadă slabă, pentru că atât o redirecționare, cât și un cookie din cache pot produce acea impresie.
Ce schimbă VPN-ul și ce nu
Tunelul schimbă adresa sursă pe care o vede un server, și odată cu ea tot ce deduce serverul din geolocația IP. Nu rescrie preferințele de limbă ale browserului, nu șterge o setare salvată și nu schimbă URL-ul pe care l-ați tastat. Acele intrări rămân exact unde erau, așa că o pagină poate păstra limba veche după ce ieșirea se mută.
Geolocația adaugă propriul zgomot. Bazele de date de adrese se contrazic, iar o ieșire înregistrată într-o țară poate fi mapată pe alta, ceea ce face ca o redirecționare pe țară să pară greșită din motive care nu au nimic de-a face cu browserul dumneavoastră.
O verificare rapidă le separă: cereți pagina din nou, notați adresa pe care o prezentați și apoi comparați limba răspunsului cu lista dumneavoastră de antete. Dacă limba corespunde listei dumneavoastră, și nu țării de ieșire, antetul a fost intrarea decisivă și nu este nimic de reparat în tunel.
Ce dovedește o pagină localizată și ce nu
Există aici un punct real de confidențialitate, și este mai mic decât cel pe care oamenii îl ridică de obicei. O listă completă a preferințelor de limbă este o intrare pentru amprentare și poate dezvălui ceva despre cine sunteți sau ce citiți. Este o dezvăluire autentică a preferinței, și nu este același lucru cu a demonstra că traficul a scăpat din tunel.
O pagină localizată nu este un indicator de scurgere. Dacă vreți cu adevărat să testați o scurgere, verificați adresa de ieșire pe care o vede site-ul, calea resolverului folosită pentru căutarea numelor și candidații pe care îi expune o stivă WebRTC. Acele teste răspund la întrebarea la care limba paginii nu poate răspunde.
Data viitoare când un site pare să vă știe țara, deschideți mai întâi antetele cererii. Dacă limba răspunsului corespunde listei browserului dumneavoastră, nu a scăpat nimic, iar stratul la care trebuie să vă uitați este cel din fața dumneavoastră.