Демо-стенды iDev — i-develop.tech
<- Вернуться к кейсам
02

Live-антифрод Quest

Без нас вы нанимаете не кандидата, а его GPT. С нами — видите кто реально решал.

LiveХост-проект: idev-quest

Как это работает

Клиентский JavaScript в Quest незаметно отслеживает четыре класса сигналов. Каждый собирается в объект telemetry, который передаётся вместе с ответом на бэкенд. Агрегатор anticheat.py вычисляет флаги и добавляет их в HR-отчёт.

Потеря фокуса / смена вкладки

Трекинг через visibilitychange + window blur. Срабатывает каждый раз, когда кандидат уходит с вкладки — типичный паттерн открытия LLM-чата или поиска.

Механизм: document.visibilityState + window.blur
Флаг: focus_loss_count > 0

Открытые DevTools

Resize-trick: docked DevTools увеличивают outerHeight без изменения innerHeight. Разница >200px — сигнал. Опрос каждые 5 секунд.

Механизм: window.outerHeight − window.innerHeight > 200
Флаг: devtools_event_count >= 3

Демонстрация экрана

Патч navigator.mediaDevices.getDisplayMedia. Оригинальный вызов не блокируется — логируем факт. Ловит расширения, которые транслируют экран внешнему наблюдателю.

Механизм: Monkey-patch getDisplayMedia до инициализации теста.
Флаг: screen_share_attempt_count >= 1

Аномалия времени на вопрос

При рендере каждого вопроса фиксируем performance.now(). При ответе — вычисляем response_time_ms. Если медиана по открытым вопросам < 800 мс — флаг fast_open_text_median.

Механизм: questionRenderedAt = performance.now() при render; delta при submit.
Флаг: median(response_time_ms_per_question) < 800

Демо: аномалия времени

Нажмите «Показать вопрос», потом сразу «Ответить» — сработает флаг (менее 800 мс). Подождите секунду после показа — флаг не выставится.

Нажмите в Quest и увидите алерты здесь.

iframe с quest.i-develop.tech появится после настройки demo-токена

Live-алерты

Ждём сигналов...

Переключите вкладку, откройте DevTools
или запустите screen share