Tæm din Content Security Policy uden at smadre dit site
Som udvikler sidder du på nøglen til mange af de systemer, andre mennesker stoler på hver dag. Et enkelt SQL-injection-hul, en dårlig adgangskontrol eller et glemt sikkerhedstjek kan være nok til datalæk, nedbrud eller misbrug. Derfor er IT-sikkerhed ikke kun et “ops”-problem – det starter i koden.
I denne kategori fokuserer vi på sikkerhed set fra udviklerens stol: Hvad du konkret skal gøre anderledes, når du skriver, tester og deployer kode. Vi holder os til praksis, eksempler og tjeklister, du faktisk kan bruge.
God sikkerhed kommer sjældent fra én magisk løsning. Det handler om en række små, konsekvente valg gennem hele udviklingsprocessen. Nogle centrale principper, vi vender tilbage til:
Hvis du gerne vil styrke din generelle forståelse af, hvordan digitale systemer hænger sammen, er det oplagt også at kigge forbi kategorien om digital grundforståelse. Mange sikkerhedsproblemer bunder i misforståelser om, hvordan nettet og protokoller faktisk fungerer.
Som webudvikler møder du igen og igen de samme typer sårbarheder. I denne kategori gennemgår vi blandt andet:
Fællesnævneren er ofte utilstrækkelig validering af input, manglende output-escaping og for brede rettigheder. Derfor hænger sikkerhed tæt sammen med helt almindelig webudvikling: HTML, CSS, JavaScript, backend og databaser.
Du behøver ikke bygge et helt nyt sikkerhedssetup i morgen. Små vaner gør en stor forskel:
Her spiller generel softwarehygiejne og struktur en stor rolle. Hvis din kode er velorganiseret og testet, er det langt lettere at spotte og rette sikkerhedsproblemer. Det hænger derfor tæt sammen med det, du kan lære under softwareudvikling i praksis, fx om versionsstyring, test og arkitektur.
Adgangskontrol er ikke kun et brugernavn og et password. Du skal tage stilling til:
Mange sårbarheder opstår, når udviklere antager, at “hvis brugeren ikke kan se knappen i UI’et, kan de heller ikke kalde endpointet”. I denne kategori ser vi på, hvordan du implementerer adgangskontrol korrekt i backend – uanset om du bygger klassisk server-renderet web eller API-baserede løsninger.
Kryptering lyder tungt, men som udvikler er din vigtigste opgave ofte at bruge eksisterende, gennemprøvede løsninger korrekt – ikke at opfinde din egen algoritme. Vi dækker blandt andet:
For at forstå, hvad du egentlig beskytter, er det også nyttigt at have styr på, hvordan data lagres og struktureres. Det kan du dykke dybere ned i under data og databaser, hvor vi ser på modeller, nøgler og forespørgsler – alt sammen med direkte relevans for sikkerhed.
Sikkerhed er ikke noget, du kun tænker på i designfasen. Den skal også med i test, debugging og drift. Sikkerhedstest kan spænde fra simple input-forsøg (kan jeg skrive JavaScript ind her?) til mere avancerede automatiserede scanninger og penetrationstests.
På Coding Class ser vi sikkerhed som en naturlig forlængelse af god udviklingspraksis: klar struktur, meningsfulde tests, gennemskuelige fejlmeddelelser og kontrollerede deployments. Når du kombinerer det, du lærer her, med emnerne under test og kvalitet, står du langt stærkere i forhold til at opdage og forebygge sårbarheder.
Brug denne kategori som dit sikkerheds-fundament: Læs om de klassiske sårbarheder, implementér et par konkrete forbedringer i dine projekter, og byg stille og roligt flere sikkerhedslag på. Du behøver ikke kunne alt på én gang – det vigtigste er, at sikkerhed bliver en naturlig del af, hvordan du udvikler, ikke noget, du klistrer på til sidst.
Uanset om du er begynder, studerende eller allerede arbejder professionelt med udvikling, vil indholdet her hjælpe dig med at skrive mere robust, ansvarlig og sikker kode.