Browserextensies ontwikkelen (Chrome en Edge) · Les

Content Security Policy (CSP)

Configureer en handhaaf een robuust Content Security Policy om injectieaanvallen te beperken en het laden van resources te beheren.

Les 3 van 411 stappen

Content Security Policy (CSP) is een gratis Browserextensies ontwikkelen (Chrome en Edge)-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Browserextensies ontwikkelen (Chrome en Edge). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Browserextensies ontwikkelen (Chrome en Edge) bevat in totaal 4 lessen.

Wat is CSP?

Welkom bij Content Security Policy (CSP)! Deze krachtige beveiligingsfunctie helpt je browserextensies en webpagina's te beschermen tegen gevaarlijke aanvallen zoals Cross-Site Scripting (XSS).

Zie CSP als een portier voor je extensie. CSP vertelt de browser precies uit welke bronnen scripts, stijlen, afbeeldingen en andere bronnen mogen worden geladen.

Hoe CSP werkt

CSP werkt door een reeks "directives" te definiëren in het bestand manifest.json van je extensie. Elke directive specificeert geldige bronnen voor een bepaald type bron.

  • Scripts: Waar JavaScript vandaan mag worden geladen.
  • Stijlen: Waar CSS vandaan mag komen.
  • Afbeeldingen: Toegestane bronnen voor afbeeldingen.
  • Frames: Welke URL's in iframes mogen worden ingesloten.

Als een bron vanuit een niet-goedgekeurde bron probeert te worden geladen, blokkeert de browser deze.

De standaard-CSP van MV3

Voor Manifest V3-extensies passen Chrome en Edge automatisch een zeer strikte standaard-Content Security Policy toe. Dit zorgt voor een basisniveau van beveiliging.

Je kunt deze standaard-CSP aanpassen of overschrijven met de sleutel content_security_policy in het bestand manifest.json. Dit is essentieel wanneer je extensie bronnen uit specifieke externe domeinen moet laden.

`default-src`: de algemene terugvaloptie

De directive default-src is de terugvaloptie van je CSP. Als je geen directive opgeeft voor een bepaald brontype (zoals script-src of img-src), gebruikt de browser de regels uit default-src.

Veelgebruikte waarden:

  • 'self': Staat alleen bronnen van de eigen oorsprong van de extensie toe.
  • https://example.com: Staat bronnen van een specifiek HTTPS-domein toe.
  • *: Staat bronnen van elke oorsprong toe (gebruik dit uiterst voorzichtig!).

JavaScript beperken (`script-src`)

De directive script-src is essentieel om Cross-Site Scripting (XSS) te voorkomen. Deze bepaalt waarvandaan je extensie JavaScript-code mag laden.

Vermijd in extensies altijd het gebruik van 'unsafe-inline' of 'unsafe-eval'. Deze directives staan inline scripts en eval() toe, wat grote beveiligingsrisico's met zich meebrengt. Laad scripts uit het pakket van je extensie of uit expliciet toegestane veilige domeinen.

Manifest met CSP

Zo definieer je een eenvoudige CSP in je manifest.json om alleen scripts uit het pakket van je extensie en afbeeldingen uit elke bron toe te staan:

{
  "name": "My Secure Extension",
  "version": "1.0",
  "manifest_version": 3,
  "action": {
    "default_popup": "popup.html"
  },
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self'; img-src *"
  }
}

Stijlen, afbeeldingen en meer

Net als bij scripts kun je ook andere brontypen beheren:

  • style-src: Definieert geldige bronnen voor CSS-stijlpagina's. Gebruik 'self' of specifieke HTTPS-URL's.
  • img-src: Specificeert toegestane bronnen voor afbeeldingen. Je kunt 'self', data: (voor afbeeldingen in base64) of specifieke CDN's voor afbeeldingen gebruiken.

Houd de regels altijd zo beperkend mogelijk om de beveiliging te verbeteren!

Meer dan basisdirectives

CSP biedt nog veel meer directives voor zeer nauwkeurige controle:

  • object-src: Beperkt bronnen voor plug-ins zoals <object> en <embed>.
  • frame-src: Bepaalt welke URL's in <frame>, <iframe> enzovoort mogen worden geladen.
  • connect-src: Beperkt waar je extensie netwerkverzoeken mag doen (bijvoorbeeld met fetch() of XMLHttpRequest).

Het principe van minimale bevoegdheden

Volg bij het definiëren van je CSP altijd het "principe van minimale bevoegdheden". Dit betekent dat je precies toestaat wat je extensie nodig heeft, en niets meer.

  • Begin met de strengst mogelijke CSP.
  • Voeg geleidelijk directives en bronnen toe wanneer dat nodig is.
  • Vermijd jokertekens (*), tenzij ze absoluut noodzakelijk en gerechtvaardigd zijn.
  • Controleer je CSP regelmatig naarmate je extensie zich ontwikkelt.

Controle van CSP-regels

Je bouwt een extensie en wilt alleen scripts uit de eigen bestanden van je extensie toestaan, en afbeeldingen uit elke externe HTTPS-bron. Welke van de volgende CSP-configuraties bereikt dit voor extension_pages?

Samenvatting: beveiligen met CSP

Goed gedaan! Je hebt geleerd dat Content Security Policy (CSP) een essentieel verdedigingsmechanisme voor je browserextensies is.

  • CSP helpt XSS en andere injectieaanvallen te voorkomen.
  • CSP werkt door vertrouwde bronnen voor bronnen op een witte lijst te zetten.
  • Manifest V3 dwingt een strikte standaard-CSP af.
  • Gebruik directives zoals default-src, script-src, style-src en img-src om inhoud te beheren.
  • Pas bij het definiëren van je CSP altijd het principe van minimale bevoegdheden toe.

Een goed geconfigureerde CSP is essentieel voor het bouwen van veilige en robuuste extensies!

Gratis beginnen

Leer JavaScript met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Content Security Policy (CSP)” gratis?

Ja — de volledige tekst van “Content Security Policy (CSP)” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Browserextensies ontwikkelen (Chrome en Edge) wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Browserextensies ontwikkelen (Chrome en Edge) bevat in totaal 4 lessen.

Wat leer ik in “Content Security Policy (CSP)”?

Configureer en handhaaf een robuust Content Security Policy om injectieaanvallen te beperken en het laden van resources te beheren. Je oefent met Browserextensies ontwikkelen (Chrome en Edge) door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Browserextensies ontwikkelen (Chrome en Edge) te beginnen?

Ervaring vooraf is niet nodig. Browserextensies ontwikkelen (Chrome en Edge) op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Content Security Policy (CSP)”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Browserextensies ontwikkelen (Chrome en Edge)?

Ja. Elke les over Browserextensies ontwikkelen (Chrome en Edge) bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Geavanceerde machtigingen begrijpen
  2. Veilige programmeerpraktijken
  3. Content Security Policy (CSP)
  4. Optionele machtigingen en aanvragen tijdens runtime
← Terug naar Browserextensies ontwikkelen (Chrome en Edge)