El navegador informa d'Europe/London mentre que una base de dades IP situa la petició a America/New_York. Aquesta és una discrepància entre dues observacions i val la pena registrar-la. No és una prova que el visitant faci servir una VPN, i tractar-la com a prova és on fallen la majoria d'implementacions. La comparació de sota manté els dos valors, i les seves formes de fallar, separats.

Dues observacions amb propietaris diferents

El valor del navegador és un paràmetre: la zona que el sistema operatiu o l'usuari ha triat per formatar dates. El valor de la base de dades és una estimació lligada a una xarxa IP, produïda per un proveïdor que assigna blocs d'adreces a llocs. Cap dels dos no és una declaració autenticada sobre on és el visitant, i cap no sap quin camí de xarxa ha seguit la petició.

Com que els propietaris són diferents, els dos valors poden divergir per motius que no tenen res a veure amb eines de privadesa. Un viatger que conserva la zona de casa, un portàtil d'empresa fixat a l'hora de la seu, un enllaç per satèl·lit amb sortida regional o una fila obsoleta a la base de dades produeixen tots una discrepància.

Com es produeix realment cada valor

El navegador pot llegir la seva zona resolta amb new Intl.DateTimeFormat().resolvedOptions().timeZone, que retorna un identificador IANA derivat de la configuració del formatejador. No demana permís d'ubicació ni consulta el GPS. Al servidor, determineu l'adreça del client a partir de la vostra configuració de servidor intermediari de confiança i després consulteu-la amb un proveïdor aprovat. Una capçalera de reenviament proporcionada pel visitant no és automàticament aquesta adreça.

Emmagatzemeu les dues observacions en camps separats amb l'hora de l'observació i el resultat de la consulta. Anomenar el camp derivat vpnDetected quan el càlcul només és una comparació de zones incrusta una conclusió en un mesurament i fa més difícil la revisió posterior.

Què demostren la coincidència i la discrepància

ObservacióQuè deixa sense resoldre
Zones informades diferentsEl viatge, un paràmetre conservat, una passarel·la empresarial, un servidor intermediari o un error de la base de dades ho poden produir tot.
La mateixa zona informadaUna sortida de VPN pot ser dins la zona de l'usuari, així que la coincidència no estableix una connexió directa.
Un valor absent o no vàlidLa comparació no està disponible, cosa que no és ni coincidència ni discrepància.

L'asimetria importa més del que suggereix la taula. Una discrepància té moltes explicacions innocents, mentre que una coincidència en té almenys una de culpable, així que cap de les dues direccions no sosté una regla categòrica. Les notes de precisió del mateix proveïdor descriuen precisió limitada i dades absents, i assenyalen que un servei d'anonimització pot exposar la ubicació del seu servidor en lloc de la de l'usuari.

És per això que el senyal pertany a una puntuació de risc amb una raó enregistrada i un estat desconegut explícit, no a un booleà que controla l'accés.

Els desplaçaments UTC no són una drecera

Comparar desplaçaments en lloc d'identificadors de zona no arregla la inferència. Dues zones diferents poden compartir un desplaçament durant part de l'any, i la mateixa zona pot canviar de desplaçament al límit de l'horari d'estiu. Si una funció necessita realment un desplaçament per programar, calculeu-lo per a l'instant concret en lloc de desar un sol número i reutilitzar-lo com a prova d'identitat.

La comparació de cadenes té la seva pròpia trampa: dues grafies de la mateixa zona, o un àlies antic, diferiran com a text tot descrivint el mateix paràmetre. Valideu els identificadors i compareu mitjançant la gestió de zones horàries de la plataforma en lloc de fer coincidir cadenes en brut.

Bloquejar o puntuar: trieu la resposta deliberadament

Per mostrar l'hora, pregunteu al visitant quina zona prefereix i atureu-vos aquí. Per a un sistema de risc d'aplicació, tracteu una discrepància com un senyal contextual feble al costat d'evidències que encaixin amb el model d'amenaça real, i deixeu que una consulta fallida produeixi un desconegut en lloc d'una detecció silenciosa. Bloquejar només per la comparació converteix un buit de mesurament en una acusació a l'usuari.

Si una decisió amb conseqüències necessita una garantia més forta, feu servir un pas de verificació o autenticació dissenyat per a això. Una heurística de zona horària no pot aportar aquesta garantia, i un detector que compta l'evidència absent com a èxit pot semblar eficaç mentre respon una pregunta diferent de la que heu fet.

Articles relacionats