Stealth Playwright evades detection with human level score (0.14)
I maintainer di solito rispondono entro 1 giorno
@cport1 ci sta già lavorando.
Dal 24/9/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
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
- Run FCaptcha server locally with verdict logging on
- Serve a form with invisible mode
- Run the following script: https://gist.github.com/obamaruntz/4825cb60701d0278beea5c27e068906a
Scores observed
Baseline run:
Tuned run:
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.
- Lingua principale
- JavaScript
- Stelle
- 221
- Fork
- 23
- Merge medio
- 18h 50m
- PR unite (30g)
- 42
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di WebDecoy/FCaptcha
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 1/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Official React componentApertaenhancement help wanted javascript
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
I maintainer di solito rispondono entro 1 giorno
-
documentation help wanted
Difficoltà 2/5 Mezza giornata Idoneità per principianti 55/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di WebDecoy/FCaptcha
Issue simili
-
[BUG]: Prompt compressor crashes with TypeError when a past chat has a non-string response.textForse già presa @ManojDevarajulu l’ha presa oggi. Apertapossible bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Mintplex-Labs/anything-llm#6737 ·
I maintainer di solito rispondono entro 1 giorno
-
Add: Tooncast brazil feedApertacheck:passed feeds:add
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 62/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
codex-team/editor.js#3037 ·
-
No Code Attached Yet
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
joomla/joomla-cms#48626 ·
I maintainer di solito rispondono entro 1 giorno
-
complexity: trivial good first issue impact: low
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
ueberdosis/tiptap#8522 ·
I maintainer di solito rispondono entro 1 giorno