https://…/s#r=Xk2…&k=pQ9…
Ключ живёт после «#»
Всё, что в ссылке после #, браузер никогда не отправляет на сервер. Поэтому ключ не попадает ни в запросы, ни в логи.
Сканер штрихкодов, который уже у вас в кармане
Откройте ScanTunnel в браузере на компьютере, наведите телефон на QR-код — и камера становится сканером. Каждый код за долю секунды появляется в списке на экране. Ничего не нужно устанавливать, а сервер не может прочитать ни одного значения.
01 · Как это работает
Не нужен ручной сканер, драйверы, Bluetooth-сопряжение или аккаунт. Только браузер на двух устройствах.
Страница сама создаёт сессию с собственным ключом шифрования и показывает QR-код. Ключ рождается в браузере и никуда не уходит.
Обычная камера открывает ссылку — и сканер на телефоне уже связан с вашим компьютером. Подключить можно несколько телефонов сразу.
Штрихкоды, QR, DataMatrix — всё летит в список на экране. Ищите, отмечайте дубли, выгружайте в CSV для Excel.
02 · Сквозное шифрование
Каждый скан шифруется на телефоне и расшифровывается только в браузере на компьютере. Посередине — запечатанный конверт.
📱 Телефон видит
☁️ Сервер видит
💻 Компьютер видит
https://…/s#r=Xk2…&k=pQ9…
Всё, что в ссылке после #, браузер никогда не отправляет на сервер. Поэтому ключ не попадает ни в запросы, ни в логи.
HKDF-SHA256 → encKey + authToken
Из одного секрета выводятся ключ шифрования и токен доступа. Сервер знает лишь SHA-256 токена — открыть сессию по нему нельзя.
QR = qrcodegen(browser)
Сервер не генерирует картинку QR — иначе ему пришлось бы узнать ключ. Сессии без активности удаляются через 7 дней.
03 · Возможности
Подтверждение — кадр замирает, вы проверяете код и жмёте «Отправить и дальше». Авто — поток без касаний: тот же код повторно примется, только когда исчезнет из кадра.
Телефон сам расшифровывает список и предупредит, если код уже сканировали. На компьютере — фильтр «только дубли».
Сканы копятся в очереди на телефоне и досылаются, когда связь вернётся. Повторная отправка никогда не задвоит запись.
Выгрузка в один клик. CSV сразу открывается в Excel с кириллицей и защитой от формул-инъекций.
Раздайте QR коллегам — все сканируют в один общий список, а на компьютере видно, сколько устройств на связи.
Перезагрузили вкладку, уснул ноутбук, перезапустили сервер — список восстановится ровно в том же порядке.
Chrome и Android распознают встроенным детектором, iPhone и Firefox — быстрым движком zxing на WebAssembly.
04 · Кому пригодится
Пройдите по полкам с телефоном — на ноутбуке сразу готовая ведомость для сверки.
Сверка поставки по EAN без покупки ТСД. Несколько сотрудников — один список.
ISBN книг сразу в таблицу каталога. Дубли подсвечиваются ещё на телефоне.
Регистрация по QR-билетам: кто пришёл — видно на экране у стойки.
Серийные номера оборудования и инвентарные наклейки без ручного набора.
Домашняя библиотека, коллекция, учёт запасов — быстрее, чем печатать руками.
05 · Свой сервер
Python + SQLite + nginx, без Docker и без внешних зависимостей в рантайме: все библиотеки лежат в репозитории с зафиксированными хешами. Один скрипт настраивает сервер, TLS и пароль.
# локально $ make venv && make dev → http://127.0.0.1:8770 # сервер, один раз $ sudo ./deploy/bootstrap.sh --instance prod \ --domain scan.example.com --htpasswd-ask ✓ nginx ✓ systemd ✓ sqlite ✓ tls # обновления $ make deploy-dev REF=main $ make deploy-prod
06 · Вопросы
Не нашли ответа? Спросите в Telegram: @nemilya
Нет. Сканер — это обычная веб-страница. Камера работает прямо в браузере: Safari на iPhone, Chrome на Android.
Браузеры дают доступ к камере только по HTTPS и только после разрешения. Проверьте, что камера разрешена для сайта и адрес начинается с https://.
Код принимается после двух одинаковых чтений подряд и только если он в центре рамки. В режиме «Авто» тот же код повторно засчитается, только когда пропадёт из кадра. А если значение уже есть в списке, телефон честно скажет «уже в списке».
На сервере — только зашифрованные «конверты», которые без ключа из QR бесполезны. Сессия, к которой не обращались 7 дней, удаляется целиком. Кнопка «Очистить» стирает список сразу.
До 5000 в одной сессии — при переполнении самые старые записи уходят. Для новой работы просто нажмите «Новая сессия»: будут новые комната и ключ.
Да. Все, кто отсканировал QR с вашего компьютера, пишут в общий список. На компьютере видно, сколько телефонов сейчас на связи.
Скоро запуск
Хотите ранний доступ, есть задача под сканер или просто вопрос? Напишите в Telegram.
Написать @nemilya