Bezpečnost

Náš bezpečnostní model v jedné větě: na serveru není nic, co by bylo možné napadnout. Vše níže lze ověřit přímo z vašich DevTools.

Architektura

Abundera QR je statická jednostránková aplikace hostovaná na Cloudflare Pages. Neexistuje žádný aplikační server, databáze, uživatelské účty, autentizace, API endpointy ani backendová kódová cesta zpracovávající uživatelská data. Každá operace generování, kódování, skenování a renderování QR probíhá výhradně ve vašem prohlížeči.

Model hrozeb

Protože neshromažďujeme, neukládáme ani nepřenášíme žádná uživatelská data, nejběžnější hrozby webových aplikací — krádež přihlašovacích údajů, únik databáze, únos relace, server-side injekce — se na nás nevztahují. Zbývající útočná plocha je statický balík prostředků (HTML, CSS, JavaScript) podávaný z našeho originu. Navrhujeme s předpokladem:

Content Security Policy — podle direktiv

Aktuální politika (ověřte v hlavičkách odpovědi pro jakýkoli požadavek):

Content-Security-Policy:
  default-src 'self';
  script-src 'self' 'wasm-unsafe-eval';
  worker-src 'self' blob:;
  style-src 'self' 'unsafe-inline';
  font-src 'self';
  img-src 'self' data: blob: https:;
  connect-src 'self' https:;
  frame-ancestors 'none';
  base-uri 'self';
  form-action 'self'

Co nám každá direktiva umožňuje a kde dělá kompromisy:

Různé CSP politiky se vztahují na /bio/* (uvolněný img-src pro avatary zadané uživatelem) a /embed/* (uvolněný frame-ancestors pro záměrné vkládání). Obě jsou zdokumentovány v site/_headers.

Transportní a rámovací hlavičky

Service worker

Náš service worker (site/sw.js) ukládá do cache pouze same-origin prostředky. Obslužná rutina fetch explicitně odmítá cross-origin požadavky a metody jiné než GET — logiku si můžete přečíst na GitHubu. Zápisy do cache jsou zabaleny v event.waitUntil(), takže nemohou být zahozeny uprostřed navigace.

Sanitace vstupů

Každá renderovací cesta přijímající uživatelský vstup s ním zachází jako s nedůvěryhodným textem:

Načítání obrázků z jiného originu

Když uživatel vloží URL https: jako foto vCard nebo logo, prohlížeč ji načte s ohledem na CORS a seznam povolených img-src v naší CSP. Obrázek se renderuje do canvasu. Nikdy se nestane živým DOM, nikdy nespustí jako kód a nikdy nedosáhne našeho originu — načtení probíhá prohlížeč → vzdálený obrázek a výsledek je vykreslen na straně klienta. Útočník kontrolující vzdálenou URL obrázku může sledovat, že URL byla načtena (řádek záznamu na jeho vlastním serveru), ale nemůže z naší stránky nic exfiltrovat.

Subresource Integrity (SRI)

Veškerý JavaScript a CSS, který dodáváme, je same-origin. Nenačítáme skripty ani styly třetích stran, takže SRI hashe nejsou relevantní. Pokud kdy načteme prostředek třetí strany, přibalíme k němu atribut SRI integrity a zdokumentujeme proces aktualizace hashe na této stránce.

Nahlášení zranitelnosti

Pokud odhalíte bezpečnostní problém ovlivňující Abundera QR — v našem kódu, nasazení nebo závislosti, kterou dodáváme — prosím nahlaste jej soukromě na security@abundera.ai. Snažíme se provést třídění do 72 hodin. Můžete nás také kontaktovat prostřednictvím kontaktních údajů v souboru /.well-known/security.txt.

Zatím žádný bug bounty

V současnosti nenabízíme placené odměny, ale každá potvrzená platná zpráva dostane uznání v changelogu a naše veřejné poděkování.

Ověřte cokoli z výše uvedeného

Každé tvrzení na této stránce lze vyvrátit z DevTools vašeho prohlížeče bez toho, abyste nám museli důvěřovat:

Kontakt

Bezpečnostní oznámení: security@abundera.ai

Poslední aktualizace: 2026-04-19. Příští přezkum: 2026-07-19.