Fullständig dokumentation av Spicks säkerhetsstatus, backup-rutiner och åtgärdsplaner för driftstörningar.
| Risk | Sannolikhet | Konsekvens | Risknivå | Nuvarande skydd | Åtgärd | Status |
|---|---|---|---|---|---|---|
| spick.se nere (GitHub Pages) GitHub har driftstörning |
Låg (99.95% uptime) | Hög – inga nya bokningar | MEDIUM | Uptime monitor var 15 min + e-postalert | Statuspage på status.spick.se. Backup-URL. | Pågår |
| Supabase nere DB eller Edge Functions ej tillgängliga |
Mycket låg (SLA 99.9%) | Kritisk – inga betalningar, inget flöde | HÖG | Incident-response workflow + e-postalert inom 15 min | Aktivera Supabase PITR (Pro). Offline-meddelande på boka.html. | Todo |
| Stripe nere / betalning misslyckas | Låg | Hög – intäktstapp | HÖG | Stripe har eget statuspage. Klarna som backup. | Swish-integration (pågår). Stripe-webhook retry. | Pågår |
| Resend nere / e-post levereras ej | Låg | Medel – kunder missar bekräftelse | MEDIUM | Resend retry-logik. Bokningar sparas i DB oberoende. | Fallback-avsändare via Mailgun (konfigurera i Resend). | Todo |
| Dataläcka – obehörig DB-access | Låg | Kritisk – GDPR, förtroende | HÖG | RLS aktiverat. Anon-key begränsad. Service role i Secrets. | Skärp RLS på bookings. Implementera Supabase Auth för kunder. | Pågår |
| GitHub komprometteras (tokens läcks) | Mycket låg | Kritisk – deploy-pipeline | MEDIUM | GitHub 2FA. Secrets rotation rutiner. | Rotera GH_PAT varje 90 dagar. Minimal scope på tokens. | Todo |
| DNS-kapning / Loopia-intrång | Mycket låg | Kritisk – hela domänen äventyras | HÖG | Loopia 2FA. DNS-TTL 3600s. | Aktivera DNSSEC i Loopia. Övervaka DNS-ändringar. | Todo |
| Städares konto komprometteras | Medel | Medel – obehörig tillgång till kunddata | MEDIUM | Magic Link (tokenbaserat). Ingen lösenord att läcka. | Magic Link upphör automatiskt. Städare ser bara egna bokningar. | OK |
| Dataskada (oavsiktlig delete/update) | Låg | Hög – bokningsdata försvinner | HÖG | Nightly backup 13 tabeller. 30 dagars retention. | Supabase PITR (Pro). Disaster Recovery workflow. | Pågår |
| GDPR-brott – PII hanteras felaktigt | Låg | Kritisk – böter upp till 4% av omsättning | KRITISK | Integritetspolicy publicerad. PNR hashas. Stripe PCI-DSS. | Data Processing Agreement med Supabase, Stripe, Resend. Cookie consent. | Pågår |
Supabase Free-tier inkluderar dagliga backups som hålls i 7 dagar. Pro-tier ger Point-in-Time Recovery (PITR) med 7 dagars retention. Vår GitHub-backup kompletterar detta med 30 dagars retention och JSON-format som är läsbart utan Supabase-access.
git revert HEAD och pusha om| Nyckel | Var lagras den | Vem kan se den | Rotationsintervall |
|---|---|---|---|
| Supabase Anon Key | GitHub Secrets + HTML-filer (publik) | Alla med repo-access + användare | Vid säkerhetsbrott |
| Supabase Service Role Key | GitHub Secrets (ej i kod) | Bara GitHub Actions | Varje 6 månader |
| Stripe Secret Key | GitHub Secrets + Supabase env | Bara GitHub Actions / Edge Functions | Varje 6 månader |
| Stripe Webhook Secret | GitHub Secrets + Supabase env | Bara GitHub Actions / Edge Functions | Vid ny webhook |
| Resend API Key | GitHub Secrets + Supabase env | Bara GitHub Actions / Edge Functions | Varje 6 månader |
| GH_PAT (GitHub token) | GitHub Secrets | Bara GitHub Actions | Varje 90 dagar |
| Anthropic API Key | GitHub Secrets | Bara GitHub Actions / Edge Functions | Varje 6 månader |
| Loopia API credentials | GitHub Secrets | Bara GitHub Actions | Varje år |
| Prioritet | Åtgärd | Tid | Ansvarig | Status |
|---|---|---|---|---|
| P1 | Aktivera Supabase Pro för PITR-backup | 1 dag | Farhad | Todo |
| P1 | Rotera GH_PAT (sista rotationsdatum okänt) | 30 min | Farhad | Todo |
| P2 | Aktivera DNSSEC i Loopia | 30 min | Farhad | Todo |
| P2 | Skärp RLS: bookings ska kräva auth för SELECT | 2 timmar | Claude | Pågår |
| P2 | Implementera Supabase Auth för kunder (ej bara email) | 1 vecka | Claude | Todo |
| P3 | Sätt upp statuspage (status.spick.se) | 2 timmar | Claude | Todo |
| P3 | DPA med Supabase, Stripe, Resend (formella avtal) | 1 dag | Farhad | Todo |
| P3 | Cookie-samtycke för Google Analytics | 2 timmar | Claude | Delvis |
| P4 | Varning om Supabase-projektet pausas | 1 timme | Claude | OK |
| P4 | Backup-lagring till extern (S3/B2) istället för GitHub | 1 dag | Claude | Todo |