Säkerhet

Vår säkerhetsmodell i en mening: det finns ingenting på en server att attackera. Allt nedan kan falsifieras från dina DevTools.

Arkitektur

Abundera QR är en statisk single-page-applikation som serveras från Cloudflare Pages. Det finns ingen applikationsserver, ingen databas, inga användarkonton, ingen autentisering, inga API-endpoints och ingen backend-kodväg som behandlar användardata. Alla QR-generings-, kodnings-, skannings- och renderingsoperationer körs helt i din webbläsare.

Hotmodell

Eftersom vi varken samlar in, lagrar eller överför användardata gäller inte de vanligaste webbapp-hoten — lösenordsstöld, databasintrång, sessionskapning, serverinjektion. Den återstående attackytan är det statiska tillgångspaketet (HTML, CSS, JavaScript) som serveras från vår origin. Vi utformar med antagandet:

Content Security Policy — per direktiv

Aktuell policy (verifiera i svarshuvuden för valfri begäran):

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'

Vad varje direktiv tillåter oss att göra och var det kompromissar:

Olika CSP-policyer gäller för /bio/* (avslappnad img-src för användarangivna avatarer) och /embed/* (avslappnad frame-ancestors för avsiktlig inbäddning). Båda dokumenteras i site/_headers.

Transport- och inramningshuvuden

Service worker

Vår service worker (site/sw.js) cachar endast same-origin-tillgångar. Fetch-hanteraren avvisar uttryckligen cross-origin-begäranden och icke-GET-metoder — du kan läsa logiken på GitHub. Cache-skrivningar är inlindade i event.waitUntil() så de kan inte tappas mitt under navigering.

Inmatningssanering

Varje renderingsväg som accepterar användarinmatning behandlar den som ej betrodd text:

Cross-origin bildinhämtning

När en användare klistrar in en https:-URL som vCard-foto eller logotyp hämtar webbläsaren den med hänsyn till CORS och vår CSP:s img-src-tillåtelselista. Bilden renderas till en canvas. Den blir aldrig live DOM, körs aldrig som kod och når aldrig vår origin — hämtningen är webbläsare → fjärrbild, och resultatet målas klientsidan. En angripare som kontrollerar en fjärrbild-URL kan spåra att URL:en laddades (en loggpost på deras egen server) men kan inte exfiltrera något från vår sida.

Subresource Integrity (SRI)

All JavaScript och CSS vi levererar är same-origin. Vi laddar inte tredjepartsskript eller stilmallar, så SRI-hashar är inte tillämpliga. Om vi någonsin laddar en tredjepartstillgång levererar vi ett SRI integrity-attribut på den och dokumenterar hash-uppdateringsprocessen på den här sidan.

Rapportera en sårbarhet

Om du upptäcker ett säkerhetsproblem som påverkar Abundera QR — vare sig det gäller vår kod, vår deployment eller ett beroende vi levererar — vänligen rapportera det privat till security@abundera.ai. Vi strävar efter att triagera inom 72 timmar. Du kan också nå oss via kontaktuppgifterna i vår /.well-known/security.txt-fil.

Ingen bug bounty (ännu)

Vi erbjuder för närvarande inte betalda bounties, men varje bekräftad giltig rapport får erkännande i ändringsloggen och vårt offentliga tack.

Verifiera vad som helst ovan

Varje påstående på den här sidan kan falsifieras från din webbläsares DevTools utan att lita på oss:

Kontakt

Säkerhetsupplysningar: security@abundera.ai

Senast uppdaterad: 2026-04-19. Nästa granskning: 2026-07-19.