BlogBezpečnostCeníkKontakt
PřihlásitRegistrovat
Tmavý režim
← Zpět na blog
15. října 2026·4 min čtení·Tým TopSMS

7 pravidel, jak zabezpečit firemní SMS účet a API klíč

Uniklý API klíč k SMS bráně znamená cizí SMS na váš účet a vaši Sender ID. Sedm konkrétních pravidel: oddělené klíče, IP whitelist, podepsané webhooky, 2FA, limity kreditu a co dělat při úniku.

SMS brána je z pohledu útočníka zajímavý cíl: kdo získá váš API klíč, může posílat SMS na váš kredit a pod vaším jménem odesílatele. Nejčastěji nejde o sofistikovaný útok, ale o klíč zapomenutý v repozitáři na GitHubu, v logu nebo v e‑mailu. Tohle je sedm pravidel, která v praxi zastaví drtivou většinu problémů. Všechna jdou nastavit v TopSMS za pár minut.

1. Jeden klíč na jeden systém

Nejčastější chyba: jeden API klíč sdílený mezi e‑shopem, interním CRM a testovacím prostředím vývojáře. Když pak unikne, nevíte odkud, a musíte vyměnit klíč všude najednou.

Správně: každý systém má vlastní klíč s vlastním názvem („E‑shop produkce“, „CRM“, „Staging“). Při úniku zrušíte jen ten jeden, ostatní integrace běží dál. V TopSMS můžete mít klíčů kolik potřebujete, každý má vlastní log volání, takže hned vidíte, který systém kolik posílá.

Pro testování použijte testovací režim klíče: volání vypadají stejně, ale nic se neodešle ani neúčtuje. Testovací klíč může vývojář mít klidně v lokálním prostředí, ostrý ne.

2. Klíč nikdy do kódu ani do repozitáře

Klíč patří do proměnné prostředí (.env, secrets manager hostingu), ne do zdrojového kódu. Automatické skenery prohledávají veřejné repozitáře na GitHubu v řádu minut po commitu; uniklý klíč k platební nebo SMS službě je zneužit obvykle do hodiny.

Praktický checklist:

  • .env je v .gitignore a klíč nikdy nebyl commitnutý (ověřte historií, ne jen aktuálním stavem)
  • klíč není ve frontendovém JavaScriptu (prohlížeč = veřejný); SMS se vždy posílá ze serveru
  • klíč není v logách, v chybových hláškách ani v URL (query parametr skončí v logu každé proxy po cestě)
  • klíč není v e‑mailu ani v chatu; pokud ho potřebujete předat, pošlete ho přes správce hesel nebo jednorázový odkaz

Pokud máte podezření, že se něco z toho stalo, nehádejte: klíč zrušte a vytvořte nový. Trvá to minutu.

3. Omezte klíč na IP adresy vašich serverů

Když má klíč nastavený IP whitelist, je k ničemu komukoli, kdo ho získá mimo vaši infrastrukturu. Pro e‑shop na vlastním serveru nebo VPS je to nejúčinnější jednotlivé opatření vůbec.

Kdy to nejde: aplikace běží na platformě s měnícími se IP (serverless funkce, některé cloudové služby). Tam whitelist vynechte a spolehněte se na pravidla 1, 2 a 5.

V TopSMS se whitelist nastavuje u každého klíče zvlášť, lze zadat víc adres. Při změně serveru nezapomeňte whitelist aktualizovat, jinak dostanete chybu 403 a SMS neodejdou.

4. Ověřujte podpis webhooků

Pokud vám brána posílá doručenky (webhook), ověřujte, že požadavek opravdu přišel od ní. Jinak může kdokoli, kdo zná adresu vašeho webhooku, posílat falešné stavy „doručeno“ nebo „selhalo“ a rozhodit vaši logiku (třeba opakované odesílání nebo falešné potvrzení ověřovacího kódu).

TopSMS každý webhook podepisuje hlavičkou X-TopSMS-Signature (HMAC‑SHA256 těla zprávy tajným klíčem webhooku). Ověření je pár řádků:

$expected = 'sha256=' . hash_hmac('sha256', $rawBody, $webhookSecret);
if (!hash_equals($expected, $_SERVER['HTTP_X_TOPSMS_SIGNATURE'] ?? '')) {
    http_response_code(401);
    exit;
}

Dvě časté chyby: ověřovat podpis nad už rozparsovaným JSON (podpis se počítá z původního těla bajt po bajtu) a porovnávat řetězce obyčejným == místo funkce odolné proti časové analýze (hash_equals, crypto.timingSafeEqual).

A nechávejte webhook na veřejné adrese bez přihlášení: za HTTP Basic Auth nebo Cloudflare Access k vám doručenky nedorazí.

5. Chraňte sám účet: silné heslo a 2FA

API klíč je jen jedna cesta. Druhá je přihlášení do klientské sekce, kde jde klíče vytvářet, měnit webhooky a dobíjet kredit. Platí obvyklé:

  • unikátní heslo ze správce hesel (ne to samé co do e‑shopu nebo e‑mailu)
  • dvoufázové ověření SMS kódem; v TopSMS si ho zapnete v Nastavení, kód chodí na ověřené číslo
  • ověřené telefonní číslo u účtu se nemění jen tak; změna jde přes podporu po ověření, právě proto, aby ho nešlo přesměrovat z ukradené relace
  • přístup do účtu mají jen lidé, kteří ho potřebují; při odchodu kolegy změňte heslo a zrušte klíče, které znal

6. Nastavte limity, ať škoda nemůže být velká

I kdyby všechno selhalo, chcete, aby útočník narazil na strop:

  • Rate limit klíče: u každého klíče v TopSMS nastavíte maximum volání za minutu. E‑shop, který posílá 200 SMS denně, nepotřebuje 1 000 za minutu.
  • Předplacený kredit je sám o sobě limit: nikdo nemůže utratit víc, než máte nabito. Nedržte na účtu zbytečně velký zůstatek, dobíjejte podle spotřeby.
  • Upozornění na nízký kredit vám přijde e‑mailem i SMS. Nečekaný rychlý pokles kreditu je první signál, že něco posílá SMS místo vás.
  • Sledujte log volání u klíče. Čísla, která nejsou vaši zákazníci, nebo volání mimo provozní dobu vašeho systému, jsou varování.

7. Co dělat při úniku klíče (plán na 10 minut)

Pořadí je důležité, nejdřív zastavit, potom zkoumat.

  1. Zrušte klíč v klientské sekci. Okamžitě přestane fungovat.
  2. Vytvořte nový klíč, nasaďte ho do systému, nastavte IP whitelist.
  3. Zkontrolujte log zrušeného klíče: kolik SMS, na jaká čísla, kdy. To rozhodne, jestli byl klíč jen uniklý, nebo už zneužitý.
  4. Změňte heslo k účtu a zkontrolujte webhook URL u všech klíčů (útočník si tam mohl nastavit vlastní adresu, aby viděl vaše doručenky).
  5. Napište nám. Pokud šlo o zneužití, pomůžeme s dohledáním a s nahlášením operátorovi; SMS odeslané útočníkem na váš kredit řešíme individuálně podle rozsahu.
  6. Zjistěte, kudy klíč unikl, a opravte příčinu (pravidlo 2). Výměna klíče bez odstranění příčiny znamená, že za měsíc řešíte totéž.

Shrnutí

Oddělené klíče, žádný klíč v kódu, IP whitelist, podepsané webhooky, 2FA, limity a připravený plán. Nic z toho nestojí peníze ani nevyžaduje bezpečnostního specialistu, a dohromady to pokrývá prakticky všechny incidenty, které u SMS účtů v praxi vidíme.

Jak jsou tyto věci řešené na naší straně (šifrování, 2FA pro správce, audit log, CSP, pravidelné audity), najdete na stránce Bezpečnost. Nastavení klíčů, whitelistu a webhooků je popsané v dokumentaci REST API.

bezpečnostAPISender IDnávod
Otestujte TopSMS zdarma

10 SMS na start, bez závazku, registrace minuta.

Registrovat zdarma →