Більшість людей сприймають QR-код як нешкідливий ярлик до сайту. Часто так і є. Але QR — це просто контейнер для тексту, а той текст може бути значно чутливішим за посилання. Перш ніж кинути зображення коду в перший-ліпший «онлайн QR-зчитувач», варто знати, що ви можете передати — і кому.

Що насправді може містити QR-код

Прочитати QR-код із зображення — приватно, на вашому власному пристрої — visual 1
Що насправді може містити QR-код

Чорно-білий візерунок кодує звичайний текст, і за домовленістю цей текст може бути багатьма речами:

  • URL — поширений випадок, але іноді приватне чи одноразове посилання (скидання пароля, запрошення, документ, який «не в списку», а не по-справжньому публічний).
  • Мережа Wi-Fi і пароль — коди «скануй, щоб під'єднатися» на роутерах і в готелях буквально кодують назву мережі й пароль звичайним текстом.
  • Контактна картка (vCard) — ім'я, номер телефону, електронна пошта й домашня чи офісна адреса.
  • Токен входу чи оплати — деякі застосунки показують QR, щоб авторизувати сеанс чи переказ; рядок усередині фактично є ключем.
  • Звичайний текст чи повідомлення — будь-що, що хтось вирішив закодувати.

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

Прихований крок: «онлайн-зчитувачі» завантажують ваше зображення

Прочитати QR-код із зображення — приватно, на вашому власному пристрої — visual 2
Прихований крок: «онлайн-зчитувачі» завантажують ваше зображення

Ось частина, яку легко проґавити. Типовий онлайн QR-зчитувач працює так: завантажує ваш файл зображення на свій сервер, декодує його там і надсилає результат назад. Це означає, що картинка — і те, що кодує код — залишає ваш пристрій і потрапляє на обладнання, яким ви не керуєте. Для посилання на публічну статтю — нормально. Для пароля Wi-Fi, токена входу чи контактної картки з домашньою адресою ви щойно передали секрет на чужий сервер, де його можуть залогувати чи закешувати, — і все це щоб прочитати текст, який уже був на вашому екрані.

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

Декодуйте його локально натомість

Підхід, що поважає приватність, — декодувати код у власному браузері, щоб зображення ніколи не подорожувало.

QR-зчитувач від IMG.DIY робить саме це. Ви даєте йому зображення — перетягніть, вставте чи оберіть файл — і воно малює картинку на canvas і декодує QR бібліотекою jsQR прямо у вашому браузері. Нічого не завантажується. Немає облікового запису й немає сервера, що робить роботу, а щойно сторінка завантажилася, воно продовжує працювати з вимкненою мережею. Ви можете довести це собі: завантажте інструмент, увімкніть режим польоту й декодуйте код — він усе одно працює, бо сервера в петлі ніколи не було.

Якщо код — це URL, інструмент дає вам клікабельне посилання (позначене rel=nofollow), тож ви можете побачити призначення, перш ніж на нього наважитися. Якщо це рядок Wi-Fi чи контактна картка, ви отримуєте сирий текст і кнопку копіювання — прочитайте, використайте, і воно лишається на вашій машині.

Розумна звичка для чутливих кодів

Два маленькі правила тримають вас у безпеці:

  1. Побачте текст, перш ніж діяти. Декодування коду показує вам призначення чи вміст перед тим, як ваш пристрій до чогось під'єднається. Уже саме це знешкоджує чимало QR-шахрайств, де друкований код підмінено на той, що вказує кудись вороже.
  2. Узгоджуйте інструмент із секретом. Для публічного посилання майже неважливо, де ви декодуєте. Для пароля, токена чи чиїхось особистих даних декодуйте локально, щоб секрет узагалі не залишав ваш пристрій.

Чесні обмеження варто озвучити: це читає код із зображення, яке ви надаєте, по одному за раз, а не з живої вебкамери — навмисний вибір, що тримає все локальним. Для всього, що QR-код може ховати, читати його на власному пристрої — просто правильний вибір за замовчуванням.