Udvikling af browserudvidelser til Chrome og Edge · Lektion

Sikker kodning

Implementér sikkerhedsprincipper for at forhindre almindelige sårbarheder som cross-site scripting (XSS) og datalækage.

Lektion 2 af 411 trin

Sikker kodning er en gratis Udvikling af browserudvidelser til Chrome og Edge-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Udvikling af browserudvidelser til Chrome og Edge, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Udvikling af browserudvidelser til Chrome og Edge-kurset indeholder 4 lektioner i alt.

Hvorfor sikkerhed er vigtig for udvidelser

Browserudvidelser har betydelige privilegier og arbejder tæt sammen med brugerdata og browsersessioner. Derfor er sikker kodning helt afgørende.

Dårlig sikkerhed kan føre til alvorlige sårbarheder som cross-site scripting (XSS) og datalækage, der kompromitterer brugernes privatliv og systemets integritet.

Forståelse af XSS-sårbarheder

Cross-site scripting (XSS) opstår, når en angriber indsætter ondsindede scripts i en betroet webapplikation eller, i vores tilfælde, i brugerfladen til din udvidelse eller dine indholdsscripts.

Disse scripts kan stjæle følsomme data, kapre brugersessioner eller endda ændre websteders udseende – alt sammen inden for rammerne af din udvidelses tilladelser.

Faren ved `innerHTML`

En af de mest almindelige årsager til XSS i webudvikling og dermed også i udvidelser er at bruge innerHTML med input, man ikke har tillid til.

Hvis du tager tekst direkte fra en bruger, f.eks. fra et formularfelt, en URL-parameter eller endda indholdet på en webside, og indsætter den i DOM'en ved hjælp af innerHTML, bliver alle indlejrede scripts kørt.

Sikker DOM-manipulation: `textContent`

For at forhindre XSS, når du viser almindelig tekst, du ikke har tillid til, skal du altid bruge egenskaben textContent i stedet for innerHTML.

textContent behandler alt input som rå tekst, så browseren ikke fortolker eller kører HTML-tags eller scripts. Det er din første forsvarslinje.

Brug af `textContent` i praksis

Prøv at køre dette enkle JavaScript-eksempel. Bemærk, hvordan textContent viser scriptet sikkert som almindelig tekst, mens innerHTML på farlig vis ville forsøge at køre det.

const userInput = "<script>alert('XSS!');</script>";

// Simulate a DOM element
const divSafe = { textContent: '' };
const divUnsafe = { innerHTML: '' };

// Safe way: Using textContent
divSafe.textContent = userInput;
console.log("Safe (textContent):", divSafe.textContent);

// Unsafe way: Using innerHTML (DO NOT DO THIS!)
divUnsafe.innerHTML = userInput;
console.log("Unsafe (innerHTML):", divUnsafe.innerHTML);

Rensning af HTML efter behov

Hvad nu, hvis du faktisk har brug for at tillade noget HTML, f.eks. fed eller kursiv tekst, fra brugerinput? I disse tilfælde er textContent ikke nok.

Du skal bruge et robust og velvedligeholdt bibliotek til HTML-rensning, f.eks. DOMPurify. Disse biblioteker fortolker HTML, fjerner ondsindede tags og attributter og returnerer sikker HTML. Byg aldrig din egen HTML-rensning.

Undgå dynamisk kodekørsel

Funktioner som eval(), new Function(), setTimeout(string) og setInterval(string) kører JavaScript-kode fra en streng.

Det udgør en betydelig sikkerhedsrisiko. Hvis en angriber kan styre strengargumentet, kan vedkommende køre vilkårlig kode i konteksten for din udvidelse og potentielt omgå andre sikkerhedsforanstaltninger.

Beskyttelse mod datalækage

Datalækage opstår, når følsomme brugerdata utilsigtet eller ondsindet bliver eksponeret for uautoriserede tredjeparter. Det er en kritisk bekymring for udvidelser.

Vær yderst forsigtig, når du sender data fra din udvidelse til eksterne servere. Kontrollér altid destinationen, brug sikre protokoller (HTTPS), og krypter om nødvendigt følsomme oplysninger.

Princippet om mindst mulige privilegier

Når du erklærer tilladelser i din udvidelses manifest.json, skal du altid følge princippet om mindst mulige privilegier.

Anmod kun om de absolut mindst mulige tilladelser, som udvidelsen kræver for at fungere. For bredt definerede tilladelser øger angrebsfladen og risikoen for datalækage, hvis din udvidelse kompromitteres.

Kontrol af bedste sikkerhedspraksis

Hvilke af følgende anbefales som sikker kodningspraksis for browserudvidelser?

Opsummering: Sådan holder du udvidelser sikre

Du har lært vigtige sikre kodningsmetoder til at bygge robuste browserudvidelser:

  • Rens alt input: Brug textContent til almindelig tekst, og brug robuste biblioteker som DOMPurify til HTML.
  • Undgå dynamisk kode: Kør aldrig kode fra strenge, du ikke har tillid til, ved hjælp af funktioner som eval().
  • Mindst mulige privilegier: Anmod kun om de nødvendige tilladelser, som din udvidelse har brug for.
  • Forebyg datalækage: Vær forsigtig, når du sender brugerdata, og sørg for sikre destinationer og protokoller.

Ved at integrere disse metoder bygger du mere pålidelige udvidelser, der beskytter brugernes privatliv og sikkerhed.

Gratis at komme i gang

Lær JavaScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Sikker kodning” gratis?

Ja — hele teksten til “Sikker kodning” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Udvikling af browserudvidelser til Chrome og Edge-kurset, skal du opgradere til CoddyKit PRO. Udvikling af browserudvidelser til Chrome og Edge-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Sikker kodning”?

Implementér sikkerhedsprincipper for at forhindre almindelige sårbarheder som cross-site scripting (XSS) og datalækage. Du øver dig i Udvikling af browserudvidelser til Chrome og Edge med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Udvikling af browserudvidelser til Chrome og Edge?

Der kræves ingen tidligere erfaring. Udvikling af browserudvidelser til Chrome og Edge på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Sikker kodning”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Udvikling af browserudvidelser til Chrome og Edge-lektion?

Ja. Alle Udvikling af browserudvidelser til Chrome og Edge-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Forstå avancerede tilladelser
  2. Sikker kodning
  3. Content Security Policy (CSP)
  4. Valgfrie tilladelser og anmodninger under kørsel
← Tilbage til Udvikling af browserudvidelser til Chrome og Edge