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.

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.
Ready to improve your writing?
Try Stylo for free and experience AI-powered writing assistance that adapts to your style.
Try Stylo FreeRelated Posts
Písanie v cudzom jazyku bez stresu: ako používať Stylo na emaily v nemčine či angličtine
Napíšte email v slovenčine a Stylo ho preloží do nemčiny, angličtiny či iného jazyka. Bez stresu, bez Google Translate.
product updatesStylo pre Android: Cesta od nápadu po release
Po mesiacoch vývoja a ladenia je Stylo pre Android konečne pripravené na testovanie. Podelím sa s vami o to, čo nás to stálo.