Викрадення перенаправлень QR-кодів: невидимий посередник
Коли ваш QR-код працює — посередник невидимий. Коли він ламається — уже запізно. Розуміння моделі перенаправлень — перший крок, щоб її уникнути.
Кожен динамічний QR-код, який ви коли-небудь сканували, залучав третю сторону, яку ви не обирали. Між камерою телефона і сайтом призначення сервер перенаправлень, що належить постачальнику QR, тихо переправляв запит. Більшість користувачів ніколи не помічає. У цьому і суть.
Ця стаття пояснює, як викрадення перенаправлень виглядає на практиці, що насправді робить посередник і що на кону.
Послідовність перенаправлень
Коли ви скануєте статичний QR для https://shop.example.com:
- Камера читає QR-код
- ОС розпізнає його як URL
- Браузер відкриває
https://shop.example.com
Три кроки. Жодних третіх сторін.
Коли ви скануєте динамічний QR для того самого призначення:
- Камера читає QR-код, що кодує щось на кшталт
https://qr-provider.com/r/x7n2 - ОС відкриває цей URL
- qr-provider.com отримує запит, логує його, шукає
x7n2у своїй базі даних - qr-provider.com видає 301 або 302 перенаправлення на
https://shop.example.com - Браузер іде за перенаправленням і потрапляє до справжнього призначення
П'ять кроків. Додаткова сторона на кроці 3 — та, якій ви не давали згоди, ніколи не платили і не бачите.
Що отримує посередник
Кожне окреме сканування створює запис серверного логу з:
- Часовою міткою сканування
- IP-адресою сканера
- Рядком user-agent (пристрій, ОС, браузер)
- Заголовком referrer (звідки прийшов сканер, якщо застосовно)
- Заголовком Accept-Language (переваги мови)
З цього постачальник може зробити висновок: приблизне географічне розташування, тип пристрою, версію ОС і, зведено, патерни сканувань у часі. Це подають клієнтам як «аналітику». Це так само є наглядом за людьми, що сканують ваші коди, — які ніколи не давали згоди.
Що може робити посередник
Змінити призначення
Призначення перенаправлення живе в базі даних постачальника. Власник QR зазвичай може редагувати його через панель керування. Це продають як фічу, і для деяких випадків це справді так. Але це означає, що QR-код більше не є тим, чим здається. Фізичний артефакт каже «скануйте, щоб відвідати наш сайт». Реальна поведінка — це те, що сьогодні каже база даних постачальника.
Вимкнути перенаправлення
Якщо підписка власника закінчується, акаунт закривається або ToS постачальника порушено, перенаправлення можна видалити. Кожна надрукована копія QR-коду одразу перестає працювати. Користувачі сканують і бачать загальну сторінку помилки або 404.
Вставити проміжну сторінку
Деякі постачальники проводять сканування динамічних QR через брендовану проміжну сторінку перед фінальним перенаправленням — показуючи рекламу, запитуючи згоду, збираючи email-адреси. Власник QR зазвичай на це не підписувався. Це додається пізніше, коли постачальник агресивніше монетизується.
Продати чи втратити дані сканувань
Логи сканувань цінні. Їх продавали аналітичним брокерам, використовували для тренування моделей таргетування реклами і — принаймні у кількох задокументованих витоках — зливали при компрометації постачальника. Ваші клієнти сканували меню; тепер відбиток їхнього пристрою живе у витоковому датасеті.
Чому користувачі ніколи не помічають
Сучасні браузери автоматично йдуть за перенаправленнями. Якщо у вас не відкриті devtools, ви не бачите проміжний стрибок. Сканування відчувається миттєвим, бо перенаправлення швидке (коли працює). З точки зору користувача, динамічний QR поводиться ідентично до статичного.
Доки сервер перенаправлень не відмовить. Тоді досвід різко відрізнятиметься — але на цей момент QR-код уже надрукований на тисячі поверхонь.
Наслідки для безпеки
Сервер перенаправлень — це єдина точка відмови для кожного QR-коду, який від нього залежить. Три поверхні атаки варті уваги:
- Захоплення акаунту. Якщо атакувальник отримає доступ до акаунту власника QR у постачальника, він може перенаправити кожен QR на фішингову сторінку. Клієнти сканують фізичний код, очікуючи меню ресторану; потрапляють на клон сторінки логіну ресторану, що збирає облікові дані.
- Компрометація постачальника. Якщо сам постачальник QR буде зламаний, кожен динамічний QR в обігу потенційно може бути перенаправлений на вміст, контрольований атакувальником. Це не теорія — розкриття інцидентів існують для кількох QR-as-a-service постачальників.
- Відмова DNS чи TLS у постачальника. Якщо домен перенаправлення перестане резолвитися або TLS-сертифікат закінчиться, кожен QR, що від нього залежить, не працюватиме. Не зловмисник — просто звичайний операційний ризик, який власник QR не контролює.
Статичні QR-коди не мають жодного з цих режимів відмови, бо між скануванням і призначенням нема сервера третьої сторони.
Як перевірити, чи ви скануєте перенаправлення
Використайте QR-сканер, що показує декодований вміст до того, як перейти за ним — наш веб-сканер це робить. Відскануйте QR-код і перевірте декодований URL. Якщо це ваше справжнє призначення — QR статичний. Якщо це щось на кшталт qrco.de/xyz або короткий домен, якого ви не впізнаєте, — це перенаправлення, і третя сторона сидить посередині.
Альтернатива
Генеруйте QR-коди, що кодують ваше призначення безпосередньо. Без серверів третьої сторони, без логів перенаправлень, без підписки. Див. статичні vs динамічні QR-коди для повного порівняння і правду про шахрайство з QR-кодами — чому модель посередника домінує в індустрії.
Або просто згенеруйте статичний QR-код і перестаньте хвилюватися.
Готові створити статичний QR-код?
Згенеруйте його у своєму браузері — без реєстрації, без відстеження, без підписки. Те, що ви створюєте, належить вам.
Дотичні матеріали
Правда про шахрайство з QR-кодами: як «безкоштовні» генератори здирають гроші з користувачів
Динамічні QR-коди дозволяють постачальникам відстежувати, редагувати, вимикати та монетизувати ваші коди після того, як ви їх надрукували. Ось як працює схема і як її уникнути.
Статичні vs динамічні QR-коди: що варто знати кожному користувачу
Один кодує ваш контент; інший кодує перенаправлення. Ця одна різниця визначає, чи працюватиме ваш QR-код за п'ять років.
Пастка підписки на QR: як постачальники тримають ваші посилання в заручниках
Приманка — безкоштовний QR-код. Гачок — те, що він працює лише поки ви платите. Пастка зачиняється того дня, коли ви надрукували десять тисяч копій.
5 червоних прапорів того, що ваш генератор QR — пастка
П'ять сигналів, що відрізняють чесні QR-інструменти від dynamic-first генераторів, які пізніше стягуватимуть з вас ренту або вимикатимуть ваші коди.