Boti mu přes noc nastříleli fakturu za tisíce dolarů — jak se tomu vyhnout
Vývojář na Redditu dostal fakturu za tisíce dolarů kvůli botům. Podíval jsem se na svůj kód a zjistil, že jsem na tom stejně.

Na Redditu jsem narazil na post od jednoho vývojáře. Spustil SaaS appku, která volala AI modely — podobně jako GoStylo. Ráno otevřel mail a čekala ho faktura za několik tisíc dolarů. Za jednu noc.
Boti. Stovky IP adres, každá v rámci free limitu, ale dohromady mu za pár hodin sežraly celý měsíční budget.
Podíval jsem se na svůj kód a zjistil jsem, že jsem na tom stejně.
Co bylo špatně
Rate limiting jsem měl postavený na fingerprintu — IP adresa plus pár hlaviček z prohlížeče. Každý fingerprint měl povolených 6 requestů za hodinu. Jenže bot s tisícovkou různých IP adres = tisíc fingerprintů = 6000 requestů za hodinu. A každý z nich volá AI model, za který platím.
Horší bylo, že 10 z 12 API endpointů nemělo vůbec žádný rate limit. Bot mohl spamovat databázi, vyčerpávat autentifikaci — a já bych se to dozvěděl, až když by přišla faktura.
Co jsem s tím udělal
Řešil jsem to po vrstvách. Ne jednu velkou ochranu, ale několik menších, kde každá chytí jiný typ útoku.
Middleware — ještě předtím, než se request dostane k jakémukoliv kódu. Limit 200 requestů za minutu na IP (člověk to nedosáhne, bot ano), blokování známých bot nástrojů podle User-Agent hlavičky a whitelist pro vyhledávače, abych si nezničil SEO. Plus caching na statických stránkách — když bot ťuká na blog tisíckrát, dostane tisíckrát tu samou cached stránku, server to vůbec nezatíží.
Rate limity na každém endpointu — prošel jsem je všechny a nastavil limity podle citlivosti. Veřejné endpointy 60 za hodinu per IP, autentifikované čtení 120, zápis 60, smazání účtu 5. Předtím tam nebylo doslova nic.
Bot scoring na transform endpointu — tohle je ten, který volá AI modely a stojí peníze. Každý request dostane skóre podle toho, jak moc vypadá jako bot. Vyplněný honeypot (skryté pole, které člověk nevidí, ale bot vyplní automaticky), chybějící kryptografický podpis z frontendu (= někdo volá API přímo), 5 requestů za 5 sekund z jednoho zdroje — každý signál přidá body. Nízké skóre zpomalí request, střední vyhodí CAPTCHA (vyřešíš jednou, máš pokoj 24 hodin), vysoké zablokuje.
Sledování nákladů — ne jen počet requestů, ale i kolik reálně stojí v dolarech. Bot nemusí posílat hodně requestů, stačí posílat dlouhé texty. Když fingerprint utratí hodinový budget, je konec.
Monitoring — každých 15 minut automatická kontrola trafficu. Když anonymní requesty dosáhnou 80% limitu, dostanu notifikaci. Nechci se o útoku dozvědět ráno.
Pro běžné uživatele se nic nezměnilo
Žádná CAPTCHA při normálním používání, žádné zpomalení. Pokud používáte GoStylo normálně, na nic z toho nenarazíte.
Ten Reddit post mě donutil podívat se na bezpečnost dřív, než by bylo pozdě. Radši strávit pár dní prevencí, než se ráno probudit s fakturou v tisících.
Ready to improve your writing?
Try Stylo for free and experience AI-powered writing assistance that adapts to your style.
Try Stylo FreeRelated Posts
Psaní v cizím jazyce bez stresu: jak používat Stylo na emaily v němčině či angličtině
Napište email v češtině a Stylo ho přeloží do němčiny, angličtiny nebo jiného jazyka. Bez stresu, bez Google Translate.
product updatesStylo pro Android: Cesta od nápadu po release
Po měsících vývoje a ladění je Stylo pro Android konečně připravené na testování. Podělím se s vámi o to, co nás to stálo.