Bezpečnost, jasně řečeno
Žádné buzzwordy. Tady je, co děláme — a co netvrdíme — abychom drželi tvé sity, zákazníky a tržby v bezpečí.
Šifrování v přenosu
Každé spojení používá TLS 1.3. HSTS preloaded. Odmítáme TLS 1.0 / 1.1 a slabé cipher suites. Žádné výjimky pro legacy klienty.
Šifrování v klidu
Databázové volumes a S3 buckety jsou šifrovány AES-256. Zálohy jsou šifrovány, než opustí produkční síť.
2-faktorová autentizace
2FA založené na TOTP je v každém plánu, s volitelným email-OTP fallbackem. 8 jednorázových recovery kódů na uživatele. Pro adminy povinné.
Hosting jen v EU
Primární region: Frankfurt. Sekundární: Stockholm. Žádná data netranzitují mimo EHP bez dokumentované Standard Contractual Clause.
Izolace tenantů
Každý zákaznický sit běží ve vlastním DB scope. Pluginy se spouští v sandboxu s profilem disable_functions + open_basedir — jeden tenant nemůže ovlivnit jiný.
Rate limiting + audit log
Rate limity per IP na každém veřejném formuláři. Každá admin akce je zapsána v activity logu se subjektem, aktérem, IP a plným diffem změněných polí.
Postupy, které dodržujeme
Roční externí pen-test
Nezávislá firma se sídlem v EU. Kritická zjištění se opravují, než se report podepíše.
SAST v CI
Každý PR spouští statickou analýzu (Psalm + Larastan). PR nelze mergnout se security severity > medium.
Monitoring závislostí
Composer + npm závislosti se denně skenují. Kritické CVE spouští patch release ten samý den.
Správa secrets
Žádné secrets v repu. Produkční secrets žijí v HashiCorp Vault s kvartální rotací.
Zálohy + restore drilly
Denní šifrované snapshoty uchovávané 30 dní. Plný restore drill běží jednou za čtvrtletí.
Reakce na incidenty
Dokumentovaný runbook. Severity 1 incidenty dostávají veřejné post-mortem do 14 dní na /blog.
Podepsané webhooky
Odchozí webhooky podepsané HMAC-SHA256. Zákazníci ověřují na každý požadavek, aby zabránili podvržení.
Hashování hesel
bcrypt s cost 12 (konfigurovatelné). Žádné heslo nikdy neopustí hranici requestu nehashované.
Odpovědné zveřejnění
Našel jsi zranitelnost? Napiš na security@radcms.io s kroky pro reprodukci. Citlivá zjištění šifruj naším PGP klíčem.
Náš závazek
- Potvrdíme tvůj report do 48 hodin.
- Triage rozhodnutí do 5 pracovních dnů (in scope / out of scope / duplicate).
- Budeme tě informovat, dokud nebude problém vyřešen.
- Veřejně tě uvedeme (pokud chceš), až bude oprava nasazena.
- Bounty za platná kritická/high zjištění (case-by-case, aktuálně až €5 000).
Prosím netestuj proti zákaznickým datům, nespouštěj automatizované skenery generující objem a dej nám rozumný čas na opravu před veřejným zveřejněním.
Audit probíhá · cíl 2026
Dostupné pro Enterprise plány