Search iconBook møde

4. Håndtering af kildekode

Uanset projektets størrelse anbefales det stærkt at bruge et værktøj til versionsstyring af kildekoden, såsom et version control system, for at kunne spore dets forskellige versioner over tid.

Opsæt dit versionsstyringssystem effektivt med fokus på sikkerhed

  • Et versionsstyringssystem er et program, der giver mulighed for at gemme hele din kildekode og tilhørende filer, samtidig med at det bevarer tidslinjen for alle ændringer. En simpel FTP-server er ikke et versionsstyringssystem.

  • Konfigurer dit miljø korrekt ved at udnytte de funktioner, dit versionsstyringssystem tilbyder. Det anbefales at implementere stærk autentifikation og/eller autentifikation med SSH-nøgler fra starten af dit projekt.

  • Tildel desuden adgangsniveauer til brugerne af dit versionsstyringssystem, og definer for hvert niveau de tilsvarende rettigheder (for eksempel et “gæste”-niveau med begrænsede læserettigheder, et “udvikler”-niveau med skrivetilladelser osv.).

  • Foretag regelmæssige backups af dit versionsstyringssystem. Husk især at tage backup af din hovedserver, hvor alle ændringer gemmes.

  • Implementér udviklingsprocedurer, så teamet kan arbejde effektivt, selv når flere personer udvikler samtidig. Du kan for eksempel vælge ikke at arbejde direkte på den primære branch (master), men i stedet oprette feature-baserede branches, der flettes ind i hovedbranchen efterhånden som udviklingen skrider frem. Sådanne strategier er veldokumenterede, fx Git Flow. Derudover tilbyder nogle versionsstyringssystemer muligheden for at opsætte beskyttede branches, der forhindrer uautoriserede ændringer i filerne på disse branches.

Vær opmærksom på indholdet af din kildekode

  • Implementér værktøjer til måling af kodekvalitet, der scanner din kode, så snart den committes, for at sikre, at den lever op til kvalitetskravene. Du kan også tilføje scripts til at kontrollere disse målinger i versionsstyringssystemets konfiguration, så en commit automatisk afvises, hvis kildekoden ikke opfylder kvalitetskravene.

  • Hold hemmelige nøgler og adgangskoder ude af dit kildekodelager:

    • i separate filer, der ikke er committed. Husk at bruge versionsstyringssystemets specielle filer (såsom .gitignore for Git), så du ikke committer følsomme filer ved en fejl.
    • i miljøvariabler, men sørg for, at miljøvariabler ikke ved en fejl logges eller vises i tilfælde af en applikationsfejl.
    • ved at bruge specialiseret software til hemmeligheds- eller konfigurationsstyring.

    Hvis du alligevel er nødt til at inkludere sådanne data i dit repository, bør du overveje automatisk kryptering/dekryptering af filerne ved hjælp af en plugin til dit versionsstyringssystem (fx git-crypt).

  • Hvis en commit indeholder persondata eller andre følsomme oplysninger, skal du huske at rense dit repository helt, da dataene stadig kan være tilgængelige i repositoryets historik, selv efter ændringer.

  • Vær forsigtig, inden du offentliggør din kildekode online. Gennemgå hele dens indhold, herunder ændringshistorikken, for at sikre, at der ikke er personlige oplysninger, adgangskoder eller andre hemmeligheder i koden.

Eksempler på værktøjer

  • I modsætning til værktøjer som Subversion, der kræver en central server, er de mest populære versionsstyringssystemer (Git, Mercurial osv.) decentraliserede.

  • De fleste af disse værktøjer tilbyder en webgrænseflade og relaterede funktioner (fejlrapportering, wiki til dokumentation osv.). Disse løsninger kan enten være offentligt tilgængelige via internettet (GitHub, Bitbucket osv.) eller hostes på dine egne servere.

Book en web pentest

Find svagheder i web applikationerne

Book i dag