1006 — это не код, который присылает сервер.
Это локальный статус клиента, означающий:
соединение закрыто нештатно,
без корректного WebSocket Close frame
Проще: кто-то дёрнул провод.
🧱 Почему это любят WAF’ы и edge-инфра
Типичный сценарий:
1️⃣ HTTP → WebSocket upgrade принят
2️⃣ Клиент начинает слать фреймы
3️⃣ WAF / Anti-Bot / API Gateway не нравится поведение
4️⃣ TCP соединение жёстко закрывается
5️⃣ Клиент видит: close code 1006
🚩 Частые триггеры для 1006
• нестандартные WebSocket фреймы
• слишком частые сообщения сразу после upgrade
• бинарные payload’ы «не по профилю»
• отсутствие cookies / auth-контекста
• подозрительный User-Agent
• попытка автоматизации (ws + сканер)
🔤 Как это выглядит снаружи
• в браузере:
WebSocket closed with code 1006
— в логике клиента:
reconnect без объяснений
— в tcpdump:
RST / FIN без close frame
🧠 Как отличить WAF от бага сервера
🔴 WAF / edge
• повторяемо при одинаковых условиях
• зависит от payload / частоты
• браузер ↔️ работает, скрипт ↔️ нет
🔴 Сервер
• нестабильно
• часто вместе с 5xx
• видно в backend-логах
📍 Навигация: [Вакансии]
🐸 Библиотека хакера
#zero_day_legends
