«La librería reproduce el protocolo directamente - WhatsApp no la distinguirá» - supuesto que se desmorona al analizarlo. Baileys y whatsapp-web.js funcionan sin navegador ni teléfono, pero no son invisibles. Qué está confirmado y qué es reconstrucción comunitaria.
El tesis original nombra comportamiento y versión de protocolo. Comportamiento confirmado sólidamente. Versión de protocolo como mecanismo de detección no confirmada oficialmente - hipótesis plausible. Paralelo web: extensiones e isTrusted.
Antes: Dos factores: comportamiento (velocidad sin pausas, sin «escribiendo») y versión de protocolo.
Después: Riesgo confirmado - señales conductuales: velocidad, intervalos perfectos, envío masivo idéntico. Versión de protocolo como factor Meta verificado - no confirmada; hipótesis de librerías retrasadas.
Antes: Ausencia de «escribiendo» = factor principal.
Después: Ausencia de presence (composing, paused) - marcador plausible. Sin confirmación de que Meta verifique ese evento concreto - solo timings antinaturales - antispam conductual.
| Parámetro | Baileys | whatsapp-web.js |
|---|---|---|
| Funcionamiento | WebSocket reverse-engineered [✓] | Puppeteer/Chromium [✓] |
| Riesgo principal | Protocolo + comportamiento | Fingerprints navegador + comportamiento |
| Marcadores | Protobuf, TLS | webdriver, Canvas/WebGL, isTrusted |
| Presence | sendPresenceUpdate() manual [✓] |
Emulación UI |
Ninguno más seguro por defecto. Headless genera decenas de señales de automatización.
whatsapp-web.js en Docker/Ubuntu. 4 bans en 20 min. Logs: navigator.webdriver = true, sin movimiento de cursor.
Muestra: anomalías técnicas en servidor. No prueba: webdriver como única causa - velocidad de envío combinada.
Segundo caso Baileys: sendPresenceUpdate('composing') + 50 ms/carácter → 150 msg/día. Correlación, no prueba única.
Stealth vs TCP/IP en datacenter. Sin confirmación - esquemas grises.
Últimos bloques - foro, no Meta.
Paquetes npm falsos Baileys robando chats y tokens - compromiso directo, no antiban.
«Protocolo oficial = cliente legítimo» - Falso.
«whatsapp-web.js más seguro por abrir navegador» - Falso.
«QR escaneado = seguro» - Falso.
«Stealth resuelve todo» - No confirmado.
¿Caída en Baileys/whatsapp-web.js? Primero perfil conductual. Actualizar librería por estabilidad de sesión, no por «detección de versión».
Regla práctica:
Sin navegador no significa sin huellas - las huellas cambian de capa.