Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Stealth Playwright evades detection with human level score (0.14)

Abierto
#87 2 comentarios 1 reacción 1 asignado Ver en GitHub

Los mantenedores suelen responder en 1 día

@cport1 ya está trabajando en esto.

Desde el 24/9/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

Summary

A Playwright script using playwright-extra + puppeteer-extra-plugin-stealth achieves a score of 0.14, indistinguishable from real human users (0.11-0.14 in my testing) with relatively simple behavioral tuning. The default block threshold of 0.5 passes it comfortably.

Environment

  • FCaptcha: v1.39.0 (Node.js server)
  • Playwright: tested via playwright-extra + puppeteer-extra-plugin-stealth
  • Mode tested: invisible (form scoring)
  • Browser: Chrome 127 (headed, real install, not headless)

Steps to reproduce

  1. Run FCaptcha server locally with verdict logging on
  2. Serve a form with invisible mode
  3. Run the following script: https://gist.github.com/obamaruntz/4825cb60701d0278beea5c27e068906a

Scores observed

Baseline run:
Image
Tuned run:
Image

What the attacker fixed vs. the baseline run

  • Typing speed 49ms/key -> bot 0.70 (conf 0.70)
    Fix: gaussian-distributed ~155ms/key with std 35ms
    Result: gone

  • Abnormal keydown/keyup ratio -> bot 0.40 (conf 0.50)
    Fix: added realistic key hold time ~75ms with variance
    Result: gone

  • No local WebRTC IPs -> headless 0.40
    Fix: injected fake RTCPeerConnection candidate
    Result: gone

Impact

With ~80 lines of behavioral tuning code, stealth Playwright achieves a score identical to a real human at the default threshold. Detection rate against this class of agent is effectively 0% out of the box.

Lenguaje dominante
JavaScript
Estrellas
221
Forks
23
Merge medio
18 h 50 min
PR fusionados (30 d)
42

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de WebDecoy/FCaptcha

Todos los issues de WebDecoy/FCaptcha

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.