AI-genererad kod utan bromsar – varför bättre prompts inte räcker
Strukturella grindar ger bättre säkerhet än smarta AI-promptar
Alla har hört historien om hur en användare plötsligt får tillgång till någon annans data. Det är exakt den typen av misstag som kan skapa stora problem, både för säkerhetsteam och för företag som behöver följa regler. Och det är sällan någon som medvetet slarvar – oftast handlar det om ren glömska.
När AI-verktyg som Claude och GPT genererar tusentals rader kod varje dag blir risken ännu större. Du kan fylla dina promptar med säkerhetsinstruktioner och upprepa "tänk på behörigheter" hur många gånger som helst. Men hur vet du egentligen att koden gör precis det du tänkt?
Varför uppmaningar inte räcker
De flesta som arbetar med AI-genererad kod förlitar sig på att modellen ska följa instruktioner. Du ber den att alltid kontrollera behörigheter, aldrig hoppa över validering eller använda rätt hjälpfunktioner. Det fungerar ibland – men det är inte tillförlitligt i produktion.
Problemet är att modellen måste:
- Komma ihåg att regeln finns
- Förstå när den ska tillämpas
- Motstå frestelsen att ta genvägar
- Hålla fast vid samma regel i hela kodbasen
Och även om modellen lyckas, måste du och dina kollegor ändå kontrollera allt under kodgranskningen. Det är en kamp som blir svårare ju mer kod som genereras automatiskt.
Strukturella grindar – kod som vägrar fel
Strukturella grindar fungerar annorlunda. De är regler som är striktare och kan kontrolleras av verktyg: kompilatorer, typer, linters och tester. De vägrar helt enkelt att låta koden passera om den inte uppfylle
r kraven.
Detta skapar en återkopplingsloop. AI:n försöker bygga något, får ett felmeddelande från en strukturell regel, tar in meddelandet och försöker igen. Så länge koden inte uppfylle
r kraven, håller loopar den tillbaka – inte som en lista med uppmaningar, utan som en låst dörr.
Regler som bor i kodens struktur
De viktigaste reglerna kan ofta beskrivas enkelt: en användare får bara tillgång till en resurs om hen är autentiserad, tillhör rätt tenant och resursen verkligen ägs av den tenanten. Men det räcker inte att skriva det i en prompt eller som kommentar.
Istället kan du embedda dessa regler i din type system. Genom att skapa guard types för "autentiserad användare" eller "resurs som ägs av tenant" gör du det för kompilatorn att låta koden slarviga anslutningar. AI:n behöver inte veta om den formella beskrivningen – den behöver bara få koden att compile och passera de strukturella gränserna.
Hur det ser ut i praktiken
Med hjälp av en formell typ
system som Shen kan du formulera behörighetsregler som dåliga. Men de blir omvandlade till guard types i din Go eller TypeScript-kodbas. Om AI:n försöker skriva koden utan att följa regler, avvisar type systemet den innan den kommer till produktion.
Detta är inte
främst om att vänta på bättre modeller. Det handlar om att skapa en struktur som ser till att AI:n har rätt förutsättningar för att generera korrekt kod.
Nya arbetssätt för AI-era
När AI blir normalt sätt att skriva kod, behöver du tänka helt anders:
Gamla sättet: Lita på att människor skriver kod som följer säkerhetsregler. Lita på att kodgranskningar hittar misstag.
Nya sättet: Lita på att maskiner kontrollera formaliserade egenskaper. Strukturera koden så att fel kräver avsiktlig handling, inte glömska.
För team som använder cloud hosting och AI-assisterad utveckling blir denna omställning viktig. Med höga volymer av kodgenerering blir strukturella regler farligt viktigare än uppmaningar i promptar.
Slutsats
Smartare AI-modeller kommer att komma.