Gå til hovedinnhold

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:

HeaderVerdiFormål
Strict-Transport-Securitymax-age=63072000; includeSubDomains; preloadTvinger HTTPS, forhindrer nedgradering
X-Frame-OptionsDENYForhindrer clickjacking (innebygd i iframe)
X-Content-Type-OptionsnosniffForhindrer MIME-type sniffing
Referrer-Policystrict-origin-when-cross-originBegrenser lekkasje av URL-informasjon
Permissions-PolicyRestriktivDeaktiverer kamera, mikrofon, geolokasjon
Content-Security-PolicyDetaljert policyBegrenser 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:

TypeGrenseFormål
Generell (lese)100 forespørsler/time per organisasjonNormal bruk
SkriveoperasjonerStrengere grenserForhindre misbruk
Sensitive endepunkter3 forespørsler/timeAutentisering, 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:

KildeVerifikasjonsmetode
ClerkSvix-signaturverifisering (ed25519) med tidsstempelsjekk
TripletexHMAC-signaturverifisering med tenant-spesifikk hemmelighet
Visma NXTSignaturverifisering 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:

SjekkVerktøyFormål
Statisk kodeanalyseESLintFinner potensielle feil og sikkerhetsproblemer
SAST (kodebase)GitHub CodeQLSemantisk sikkerhetsanalyse på JavaScript/TypeScript
TypesikkerhetTypeScript (strikt modus)Eliminerer en hel klasse feil ved kompileringstid
EnhetstesterVitestVerifiserer korrekt oppførsel
Ende-til-ende-testerPlaywrightTester hele brukerflyter i nettleseren
ByggevalideringNext.js buildSikrer at applikasjonen bygges uten feil
AvhengighetsoppdateringerDependabot (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 audit ved 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

KomponentLeverandørSikkerhetstiltak
HostingVercelSOC 2 Type II, automatisk skalering, DDoS-beskyttelse
DatabaseSupabase (AWS)SOC 2, kryptert lagring, nettverksisolering, automatisk backup
DNS/CDNCloudflareISO 27001, DDoS-mitigering, WAF
AutentiseringClerkSOC 2 Type II, GDPR-kompatibel
BetalingStripePCI DSS Level 1, SOC 2

Alle infrastrukturkomponenter opererer i EU-regionen.


Sist oppdatert: april 2026