Hopp til innhold
NorscodeNorscode

Trygghet uten tillit: kapabiliteter mot resten

ArtikkelAv Norscode-prosjektet

Det viktigste Norscode gjør annerledes handler ikke om syntaks, men om hvem programmet får stole på.

Fra full tillit til full kontroll Full tillit de fleste språk Tillatelser Deno, nyere Node Kapabiliteter i kjernen

Det viktigste Norscode gjør annerledes, handler ikke om syntaks, men om tillit. La oss sammenlikne hvordan ulike kjøretider håndterer hva et program får lov til.

Den vanlige modellen: full tillit

I de fleste språk — Python, Ruby, Go, og tradisjonelt JavaScript på Node — arver et program tilgangen til brukeren som starter det. Skal det lese én fil, kan det i praksis lese alle. Skal det på nett, kan det ringe hvor som helst. Det betyr at en avhengighet dypt nede i treet, som du aldri har lest, har samme tilgang som koden din selv. De aller fleste sikkerhetshendelser i moderne programvare handler nettopp om at noe fikk gjøre mer enn det trengte.

En voksende bevegelse

Norscode er ikke alene om å ta dette på alvor. Deno, laget av samme person som startet Node, kom med et tillatelsessystem der du eksplisitt gir --allow-read, --allow-net og lignende. Nyere Node-versjoner har begynt å tilby noe liknende. Retningen er tydelig: tilgang bør gis, ikke antas.

Der Norscode går lenger

I Norscode er kapabiliteter ikke et flagg du kan huske å skru på, men kjernen i kjøretiden. Et program starter uten noe, og du oppgir presist hva det får: hvilket område av disken, hvilken vert på nettet, om det får lese miljøvariabler. Programmet kan ikke be om mer underveis — grensen settes av den som starter det, og kan ikke forhandles bort av koden.

Hva betyr det for deg?

Hvis sikkerhetsmodellen betyr mye for deg, er både Deno og Norscode verdt å se på. Norscode legger til norsk syntaks og et bredt standardbibliotek oppå den samme grunntanken: at trygghet skal være utgangspunktet, ikke en ettertanke.

Les også

Tilbake til oversikten