Back to Blog
product updates

Boti mu cez noc nastrieľali faktúru za tisíce dolárov — ako sa tomu vyhnúť

Vývojár na Reddite dostal faktúru za tisíce dolárov kvôli botom. Pozrel som sa na svoj kód a zistil, že som na tom rovnako.

GoStylo Team
3 min read
Boti mu cez noc nastrieľali faktúru za tisíce dolárov — ako sa tomu vyhnúť

Na Reddite som narazil na post od jedného vývojára. Spustil SaaS appku, ktorá volala AI modely — podobne ako GoStylo. Ráno otvoril mail a čakala ho faktúra za niekoľko tisíc dolárov. Za jednu noc.

Boti. Stovky IP adries, každá v rámci free limitu, ale dohromady mu za pár hodín zožrali celý mesačný budget.

Pozrel som sa na svoj kód a zistil som, že som na tom rovnako.

Čo bolo zle

Rate limiting som mal postavený na fingerprinte — IP adresa plus pár hlavičiek z prehliadača. Každý fingerprint mal povolených 6 requestov za hodinu. Lenže bot s tisíckou rôznych IP adries = tisíc fingerprintov = 6000 requestov za hodinu. A každý z nich volá AI model, za ktorý platím.

Horšie bolo, že 10 z 12 API endpointov nemalo vôbec žiadny rate limit. Bot mohol spamovať databázu, vyčerpávať autentifikáciu — a ja by som sa to dozvedel, až keď by prišla faktúra.

Čo som s tým urobil

Riešil som to po vrstvách. Nie jednu veľkú ochranu, ale niekoľko menších, kde každá chytí iný typ útoku.

Middleware — ešte pred tým, než sa request dostane k akémukoľvek kódu. Limit 200 requestov za minútu na IP (človek to nedosiahne, bot áno), blokovanie známych bot nástrojov podľa User-Agent hlavičky a whitelist pre vyhľadávače, aby som si nezničil SEO. Plus caching na statických stránkach — keď bot ťuká na blog tisíckrát, dostane tisíckrát tú istú cached stránku, server to vôbec nezaťaží.

Rate limity na každom endpointe — prešiel som ich všetky a nastavil limity podľa citlivosti. Verejné endpointy 60 za hodinu per IP, autentifikované čítanie 120, zápis 60, zmazanie účtu 5. Predtým tam nebolo nič.

Bot scoring na transform endpointe — toto je ten, ktorý volá AI modely a stojí peniaze. Každý request dostane skóre podľa toho, ako moc vyzerá ako bot. Vyplnený honeypot (skryté pole, ktoré človek nevidí, ale bot vyplní automaticky), chýbajúci kryptografický podpis z frontendu (= niekto volá API priamo), 5 requestov za 5 sekúnd z jedného zdroja — každý signál pridá body. Nízke skóre spomalí request, stredné vyhodí CAPTCHA (vyriešiš raz, máš pokoj 24 hodín), vysoké zablokuje.

Sledovanie nákladov — nie len počet requestov, ale aj koľko reálne stoja v dolároch. Bot nemusí posielať veľa requestov, stačí posielať dlhé texty. Keď fingerprint minie hodinový budget, je koniec.

Monitoring — každých 15 minút automatická kontrola trafficu. Keď anonymné requesty dosiahnu 80% limitu, dostanem notifikáciu. Nechcem sa o útoku dozvedieť ráno.

Pre bežných používateľov sa nič nezmenilo

Žiadna CAPTCHA pri normálnom používaní, žiadne spomalenie. Ak používate GoStylo normálne, na nič z toho nenarazíte.


Ten Reddit post ma donútil pozrieť sa na bezpečnosť skôr, než by bolo neskoro. Radšej tráviť pár dní prevenciou, než sa ráno zobudiť s faktúrou v tisícoch.

AI-Powered Writing

Ready to improve your writing?

Try Stylo for free and experience AI-powered writing assistance that adapts to your style.

Try Stylo Free
bot ochranaSaaS bezpečnosťrate limitingAPI ochranaAI nákladyweb security

Related Posts