Браузер повідомляє Europe/London, а база IP розміщує запит в America/New_York. Це розбіжність двох спостережень, і її варто зафіксувати. Це не доказ того, що відвідувач використовує VPN, і саме ставлення до неї як до доказу — місце, де більшість реалізацій помиляються. Порівняння нижче тримає два значення та їхні режими відмови окремо.

Два спостереження з різними власниками

Значення браузера — це налаштування: пояс, який операційна система або користувач вибрав для форматування дат. Значення бази даних — це оцінка, прив'язана до IP-мережі, яку створює постачальник, що зіставляє блоки адрес із місцями. Жодне не є автентифікованим твердженням про те, де стоїть відвідувач, і жодне не знає, яким мережевим шляхом пішов запит.

Оскільки власники різні, значення можуть розходитися з причин, які не мають нічого спільного з інструментами приватності. Мандрівник, який зберігає домашній пояс, корпоративний ноутбук, прив'язаний до часу головного офісу, супутникова лінія з регіональним виходом або застарілий рядок бази даних — усе це дає розбіжність.

Як насправді утворюється кожне значення

Браузер може прочитати свій розв'язаний пояс за допомогою new Intl.DateTimeFormat().resolvedOptions().timeZonenew Intl.DateTimeFormat().resolvedOptions().timeZone

, що повертає ідентифікатор IANA, виведений із налаштувань форматувальника. Він не запитує дозвіл на геолокацію і не звертається до GPS. На сервері визначте адресу клієнта з довіреної конфігурації проксі, потім знайдіть її в схваленого постачальника. Заголовок пересилання, наданий відвідувачем, автоматично не є цією адресою.vpnDetectedЗберігайте два спостереження як окремі поля разом із часом спостереження та результатом пошуку. Називання похідного поля

vpnDetected

, коли обчислення — лише порівняння поясів, вбудовує висновок у вимірювання й ускладнює подальший перегляд.Що доводять збіг і розбіжність
СпостереженняЩо залишається невирішеним
Різні заявлені поясиПоїздка, збережене налаштування, корпоративний шлюз, проксі або помилка бази даних — усе це може дати такий результат.
Той самий заявлений поясВихід VPN може бути в поясі користувача, тому збіг не встановлює прямого з'єднання.

Одне значення відсутнє або недійсне

Порівняння недоступне, а це ні збіг, ні розбіжність.

Асиметрія важливіша, ніж показує таблиця. Розбіжність має багато невинних пояснень, а збіг — принаймні одне винне, тож жоден напрям не підтримує категоричного правила. Власні нотатки постачальника про точність описують обмежену точність і відсутні дані й указують, що сервіс анонімізації може розкрити місце свого сервера, а не користувача.

Тому сигнал належить до оцінки ризику із зафіксованою причиною та явним невідомим станом, а не до логічного значення, що керує доступом.

Зсуви UTC — не короткий шлях

Порівняння зсувів замість ідентифікаторів поясів не виправляє висновку. Два різні пояси можуть ділити зсув частину року, і той самий пояс може змінити зсув на межі літнього часу. Якщо функції справді потрібен зсув для планування, обчисліть його для конкретного моменту, а не зберігайте одне число й не використовуйте його знову як доказ особи.

Порівняння рядків має власну пастку: два написання одного поясу або застарілий псевдонім різняться як текст, хоч і описують те саме налаштування. Перевіряйте ідентифікатори й порівнюйте через обробку часових поясів платформи, а не зіставляючи сирі рядки.

Блокувати чи оцінювати: вибирайте реакцію усвідомлено

Схожі статті