Sikkerhetsarkitektur
Denne siden beskriver de tekniske sikkerhetstiltakene i Revizo. Informasjonen er ment for IT-ansvarlige, sikkerhetsteam og compliance-medarbeidere som trenger innsikt i plattformens sikkerhetsprofil.
Sikkerhetslag
Revizo er bygget med sikkerhet i dybden — flere uavhengige sikkerhetslag som hver for seg gir beskyttelse:
┌──────────────────────────────────────────────────────┐
│ 1. Kode og utvikling │
│ Automatiserte tester, typesjekk, kodeanalyse │
├──────────────────────────────────────────────────────┤
│ 2. Transport │
│ TLS 1.2+, HSTS, sikkerhetsheadere │
├──────────────────────────────────────────────────────┤
│ 3. Autentisering │
│ Clerk (SSO, MFA, sesjoner) │
├──────────────────────────────────────────────────────┤
│ 4. Autorisasjon │
│ RBAC (administrator, medlem, leser) │
├──────────────────────────────────────────────────────┤
│ 5. API-sikkerhet │
│ Inputvalidering (Zod), rate limiting, CORS │
├──────────────────────────────────────────────────────┤
│ 6. Dataisolering │
│ Tenant-scoping, Row Level Security │
├──────────────────────────────────────────────────────┤
│ 7. Kryptering │
│ AES-256 (lagring), AES-256-GCM (applikasjon) │
├──────────────────────────────────────────────────────┤
│ 8. Overvåking │
│ Sentry, strukturert logging, hendelseslogg │
└──────────────────────────────────────────────────────┘
HTTP-sikkerhetsheadere
Alle svar fra Revizo inkluderer følgende sikkerhetsheadere:
| Header | Verdi | Formål |
|---|---|---|
Strict-Transport-Security | max-age=63072000; includeSubDomains; preload | Tvinger HTTPS, forhindrer nedgradering |
X-Frame-Options | DENY | Forhindrer clickjacking (innebygd i iframe) |
X-Content-Type-Options | nosniff | Forhindrer MIME-type sniffing |
Referrer-Policy | strict-origin-when-cross-origin | Begrenser lekkasje av URL-informasjon |
Permissions-Policy | Restriktiv | Deaktiverer kamera, mikrofon, geolokasjon |
Content-Security-Policy | Detaljert policy | Begrenser kilder for script, stiler og tilkoblinger |
Content Security Policy (CSP)
CSP-headeren begrenser hvilke kilder nettleseren tillater å laste ressurser fra. Kun kjente og verifiserte domener er hvitlistet, inkludert Clerk (autentisering), Supabase (data), og Sentry (feilovervåking).
Inputvalidering
Alle data som mottas fra klienter valideres server-side med strukturerte skjemaer (Zod) før de behandles:
- Typevalidering — Strenger, tall, UUIDs, e-postadresser, etc.
- Grenseverdier — Maks lengde, tillatte verdier, gyldige formater
- Sanitering — Filnavn saniteres, HTML-innhold fjernes der det ikke er forventet
- Filopplasting — MIME-type verifiseres, filstørrelse begrenses (maks 20 MB), filnavn saneres
Validering feiler tidlig med tydelige feilmeldinger. Interne feildetaljer (stakk-spor, databasefeil) eksponeres aldri til klienten.
Rate limiting
Revizo håndhever rate limiting på alle API-endepunkter for å forhindre misbruk:
| Type | Grense | Formål |
|---|---|---|
| Generell (lese) | 100 forespørsler/time per organisasjon | Normal bruk |
| Skriveoperasjoner | Strengere grenser | Forhindre misbruk |
| Sensitive endepunkter | 3 forespørsler/time | Autentisering, invitasjoner |
Ved overskridelse returneres HTTP 429 (Too Many Requests) med en Retry-After-header som indikerer når neste forespørsel tillates.
Cache og sesjonshåndtering
API-caching
Alle API-svar inkluderer riktige Cache-Control-headere:
- Leseoperasjoner:
private, no-cache— data kan caches lokalt av nettleseren, men revalideres ved hver forespørsel - Skriveoperasjoner:
private, no-store— data caches aldri
Sesjoner
- Sesjonstokens har kort levetid og roteres automatisk av Clerk
- Innaktive sesjoner utløper automatisk
- Sesjonsinformasjon lagres ikke i Revizos database — all sesjonsadministrasjon skjer hos Clerk
Webhook-sikkerhet
Revizo mottar webhooks fra tredjepartstjenester. Alle webhooks verifiseres med kryptografiske signaturer:
| Kilde | Verifikasjonsmetode |
|---|---|
| Clerk | Svix-signaturverifisering (ed25519) med tidsstempelsjekk |
| Tripletex | HMAC-signaturverifisering med tenant-spesifikk hemmelighet |
| Visma NXT | Signaturverifisering med delt hemmelighet |
Webhooks som feiler signaturverifisering avvises umiddelbart.
Utviklingssikkerhet
Kodesjekker (CI/CD)
Alle kodeendringer gjennomgår automatiske sjekker før de når produksjon:
| Sjekk | Verktøy | Formål |
|---|---|---|
| Statisk kodeanalyse | ESLint | Finner potensielle feil og sikkerhetsproblemer |
| SAST (kodebase) | GitHub CodeQL | Semantisk sikkerhetsanalyse på JavaScript/TypeScript |
| Typesikkerhet | TypeScript (strikt modus) | Eliminerer en hel klasse feil ved kompileringstid |
| Enhetstester | Vitest | Verifiserer korrekt oppførsel |
| Ende-til-ende-tester | Playwright | Tester hele brukerflyter i nettleseren |
| Byggevalidering | Next.js build | Sikrer at applikasjonen bygges uten feil |
| Avhengighetsoppdateringer | Dependabot (npm + GitHub Actions) | Varsler om nye versjoner og kjente sårbarheter |
Branch-beskyttelse
Hovedgrenene (main og develop) er beskyttet med server-side regler:
- Force-push er blokkert
- Sletting er blokkert
- Alle CI-sjekker må bestå før sammenslåing
Avhengighetssikkerhet
- Dependabot foreslår ukentlige oppdateringer for npm og GitHub Actions
- Regelmessig
npm auditved oppgraderinger og i sikkerhetsgjennomganger - Avhengigheter vurderes for sikkerhet, vedlikeholdsstatus og bundlestørrelse før installasjon
Feilovervåking
Sentry brukes for sanntids feilovervåking med følgende sikkerhetstiltak:
- PII-filtrering: Forespørselsdata fjernes automatisk før innsending til Sentry
- Session replay: Aktiveres kun ved feil, med inputmaskering
- Korrelasjons-ID: Hver forespørsel tildeles en unik ID som gjør det mulig å spore en hendelse gjennom hele systemet uten å eksponere brukerdata
Infrastruktursikkerhet
| Komponent | Leverandør | Sikkerhetstiltak |
|---|---|---|
| Hosting | Vercel | SOC 2 Type II, automatisk skalering, DDoS-beskyttelse |
| Database | Supabase (AWS) | SOC 2, kryptert lagring, nettverksisolering, automatisk backup |
| DNS/CDN | Cloudflare | ISO 27001, DDoS-mitigering, WAF |
| Autentisering | Clerk | SOC 2 Type II, GDPR-kompatibel |
| Betaling | Stripe | PCI DSS Level 1, SOC 2 |
Alle infrastrukturkomponenter opererer i EU-regionen.
Sist oppdatert: april 2026