De CSP-richtlijnreferentie behandelt elk instructieveld dat beschikbaar is in de Content Security Policy-instellingen van Document360, samen met best practices voor het configureren ervan, methoden om je beleid te testen en richtlijnen voor het oplossen van problemen met geblokkeerde bronnen. Gebruik deze referentie nadat je CSP hebt ingeschakeld en klaar bent om je beleid te configureren of valideren.
CSP-richtlijngroepen
CSP-instellingen in Document360 zijn georganiseerd in vier groepen. Alle velden accepteren komma-gescheiden domein-URL's in het formaat https://example.com.
Codebeleid
Deze groep bepaalt de bronnen waaruit code en stylingbronnen worden geladen. De Default source-richtlijn fungeert als een fallback voor elk resourcetype dat geen specifiekere regel heeft gedefinieerd.
| Richtlijn | Veldnaam | Beschrijving |
|---|---|---|
default-src |
Standaardbron | Definieert fallback-toegestane domeinen voor alle resourcetypen die niet door een specifiekere richtlijn worden gedekt. Een veelvoorkomende startwaarde is 'self', die alle niet-vermelde resourcetypes beperkt tot je eigen domein. |
script-src |
Scriptbron | Specificeert welke domeinen JavaScript kunnen bedienen op je kennisbasis. Alleen scripts van vermelde bronnen worden door de browser uitgevoerd. |
style-src |
Stijlbron | Specificeert welke domeinen stylesheets en CSS kunnen leveren. Voorkomt dat kwaadaardige stijlen worden geïnjecteerd. |
Resource control
Deze groep bepaalt welke externe domeinen media- en databronnen mogen leveren, zoals afbeeldingen, lettertypen, API-aanroepen en scripts voor achtergrondmedewerkers.
| Richtlijn | Veldnaam | Beschrijving |
|---|---|---|
img-src |
Afbeeldingsbron | Specificeert welke domeinen afbeeldingen mogen laden op je Knowledge Base-site. |
font-src |
Fontbron | Specificeert welke domeinen fontbestanden mogen leveren die door je kennisbank worden gebruikt. |
connect-src |
Bron verbinden | Specificeert de domeinen waarnaar scripts kunnen verbinden bij API-aanroepen of netwerkverzoeken (bijv. fetch, XHR, WebSocket). |
worker-src |
Werkwijzerbron | Specificeert welke domeinen achtergrondworker-scripts mogen laden die door je kennisbank worden gebruikt. |
Embedding & Beveiliging
Deze groep bepaalt hoe je kennisbasis externe inhoud inbedden en hoe deze zelf op andere websites kan worden ingebed. Het is vooral belangrijk voor het voorkomen van clickjacking-aanvallen en het beheren van inhoud van derden zoals video's, widgets en portalen.
| Richtlijn | Veldnaam | Beschrijving |
|---|---|---|
frame-src |
Framebron | Specificeert welke domeinen als frames of iframes binnen je kennisbank mogen worden ingebed (bijv. YouTube, Vimeo). |
frame-ancestors |
Frame-voorouders | Specificeert welke domeinen je Knowledge Base-pagina's in hun eigen frames mogen inembeden. Gebruik dit om ongeoorloofd framing te voorkomen. |
form-action |
Vormactie | Geeft aan welke domeinen formulierinzendingen uit je kennisbank mogen worden verzonden. |
object-src |
Objectbron | Specificeert welke domeinen plug-in-in-inhoud mogen laden, zoals <object> of <embed> elementen. Stel in op 'none' als het niet nodig is. |
Verslaggeving
De Rapportage-groep instrueert browsers om overtredingrapporten naar een aangewezen eindpunt te sturen telkens wanneer een resource door uw beleid wordt geblokkeerd. Dit is essentieel om verkeerde configuraties en potentiële aanvalpogingen te identificeren zonder je site te verstoren.
| Richtlijn | Veldnaam | Beschrijving |
|---|---|---|
report-endpoint |
Rapporteer eindpunt | Geeft de URL aan waar browsers rapporten naartoe moeten sturen wanneer bronnen door je CSP worden geblokkeerd. Voer één of meer komma-gescheiden rapport-endpoint-URL's in. |
report-to |
Rapporteer aan | Specificeert de naam van de rapportagegroep die door de browser wordt gebruikt om CSP-overtredingsrapporten te verzenden. Dit moet overeenkomen met een rapportagegroep die is gedefinieerd in de rapportageconfiguratie van uw site. |
Zorg ervoor dat de endpoint-URL's die in de Rapportagevelden worden ingevoerd geldig en openbaar bereikbaar zijn voordat je opslaat. Het rapport-endpoint moet POST-verzoeken accepteren en reageren met een 2xx-statuscode.
Best practices
-
Begin met een beperkende standaard — Zet Default source op
'self'eerste. Dit creëert een veilige basislijn waarbij alleen bronnen uit je eigen domein zijn toegestaan, tenzij expliciet elders toegestaan. Voeg specifieke domeinen toe in gerichte velden in plaats van de standaardbron te verbreden. -
Gebruik specifieke richtlijnen in plaats van brede toelaatlijsten — In plaats van veel domeinen toe te voegen aan Standaardbron, gebruik je de beoogde velden: Script source, Frame source, Connect source, enzovoort. Dit maakt de polis makkelijker te onderhouden en vermindert ongewenste overblootstelling.
-
Gebruik rapportage voordat je afdwingt — Configureer eerst het Rapport-endpoint zodat je geblokkeerde bronnen kunt monitoren voordat het beleid je lezers beïnvloedt. Bekijk overtredingsrapporten enkele dagen of weken voordat je het beleid aanscherpt.
-
Gebruik nonce voor aangepaste inline scripts — Gebruik altijd de
{{Document360-Nonce}}placeholder in aangepaste HTML-scriptsecties. Dit maakt het mogelijk om betrouwbare inline scripts veilig te draaien zonder gebruik te maken'unsafe-inline'van , wat je hele scriptbeleid zou ondermijnen.
Hoe test je je Content Security Policy
Controleer na het configureren en opslaan van je CSP-instellingen of het beleid werkt zoals verwacht met een van de volgende methoden.
Methode 1: Via paginabron
- Open je Knowledge Base-site in een browser.
- Klik met de rechtermuisknop ergens op de pagina en selecteer Pagina Broncode weergeven.
- Druk op Ctrl+F (Windows) of Cmd+F (Mac) en zoek naar
Content-Security-Policy. - Als deze wordt gevonden, verschijnt de volledige CSP-configuratie naast deze term, waarmee wordt bevestigd dat deze actief is.
Methode 2: Via browserontwikkelaarstools
- Open de ontwikkelaarstools van je browser (F12 of met de rechtermuisknop > Inspecteren).
- Ga naar het tabblad Netwerk .
- Bezoek je kennisbank en selecteer een willekeurig pageverzoek.
- Bekijk de HTML-pagina op de CSP-metatag.
Methode 3: Via online tools
Je kunt ook externe tools zoals securityheaders.com gebruiken om de beveiligingsconfiguratie van je locatie te analyseren. Omdat Document360 een meta-element gebruikt in plaats van een responsheader, kunnen sommige tools CSP als afwezig rapporteren op headerniveau — dit is te verwachten.
Veelvoorkomende problemen
De video toont in het ene artikel als 'Deze inhoud is geblokkeerd', maar niet in een ander
Het domein dat de video bedient staat niet in je Frame-bronlijst, of het domein verschilt tussen embed-types (bijvoorbeeld https://www.youtube.com voor standaard embeds versus https://www.youtube-nocookie.com privacy-enhanced embeds). Voeg beide toe aan Frame source.
Aangepast lettertype wordt verkeerd weergegeven of valt terug op systeemlettertype
Lettertypeleveranciers gebruiken doorgaans twee verschillende domeinen — één voor het CSS-stylesheet en één voor de daadwerkelijke lettertypebestanden. Beide moeten worden vermeld. Voor Google Fonts, voeg toe https://fonts.googleapis.com aan Style source en https://fonts.gstatic.com Font source.
Chatwidget laadt maar werkt niet
Chatwidgets laden vaak scripts, voeren API-aanroepen uit en laden afbeeldingen uit meerdere domeinen. Controleer de browserconsole op alle geblokkeerde verzoeken — er kunnen er meerdere zijn. Voeg alle benodigde domeinen toe aan de juiste richtlijnvelden (Script source, Connect source, Image source).
Formulierindiening is geblokkeerd
Als een formulier in je kennisbank wordt ingediend bij een externe dienst, voeg dan het domein van die dienst toe aan het formulieractieveld.
Overtredingrapporten komen niet aan bij het Rapporteer-eindpunt
Controleer dat:
- De endpoint-URL is openbaar bereikbaar (niet achter een VPN of firewall).
- Het eindpunt accepteert POST-verzoeken en geeft een 2xx-antwoord terug.
- Het eindpunt ondersteunt het
Content-Type: application/csp-reportverzoekformaat. - Als je de Report to-richtlijn gebruikt, is de benoemde rapportagegroep correct geconfigureerd in je infrastructuur.
De CSP-validatietool meldt CSP als ontbrekend
Document360 implementeert CSP via een meta-element in de paginabron, niet via een HTTP-responsheader. Tools die alleen responsheaders controleren, melden CSP als ontbrekend. Om te bevestigen dat CSP is ingeschakeld, bekijk je de broncode van de pagina en zoek je naar Content-Security-Policy.
Browserverschillen
De meeste moderne browsers (Chrome, Firefox, Edge, Safari) ondersteunen het CSP-meta-element. Bekende verschillen:
frame-ancestorswordt genegeerd wanneer het via een meta-element wordt geleverd in sommige oudere browserversies. Als bescherming tegen frame embedding cruciaal is, schakel dan ook X-Frame Protection in.- Safari kan sommige CSP-richtlijnen anders afhandelen dan Chrome en Firefox. Test je configuratie in Safari als je gebruikers op Apple-apparaten zitten.
- Zeer oude browsers (Internet Explorer 11 en lager) ondersteunen geen CSP. Als je IE11-gebruikers hebt, wordt CSP stilletjes genegeerd.
Private Knowledge Base-projecten kunnen niet in iframes worden ingebed. Authenticatiecookies zijn niet correct ingesteld binnen iframes, wat leidt tot herhaalde inlogpogingen en doorleidingsfouten. Als je de kennisbank in een andere applicatie moet inbedden, gebruik dan een Knowledge base widget .
FAQ
Wat is het verschil tussen frame-src en frame-voorouders?
Deze twee richtlijnen regelen tegenovergestelde richtingen van het inbedden. frame-src bepaalt welke externe domeinen je kennisbank mag inbedden (bijvoorbeeld een YouTube-video in een artikel). frame-ancestors bepaalt welke externe domeinen je kennisbasis in hun eigen pagina's mogen inbedden.
Hoe gebruik ik de rapportage-instructies?
Voer de URL van je rapportage-endpoint in het veld Rapporteer-endpoint . Wanneer een browser een bron blokkeert, stuurt hij een JSON-rapport naar deze URL. Report to werkt samen met het Rapporteer-endpoint en specificeert een benoemde rapportagegroep die vooraf is geconfigureerd in de rapportage-infrastructuur van je locatie — handig voor bedrijfsopstellingen met gecentraliseerde beveiligingsmonitoring.
Wat moet ik toevoegen aan het veld Standaard bron?
Begin met 'self', wat alle niet-vermelde resourcetypes beperkt tot je eigen domein. Voeg vervolgens specifieke domeinen toe in de meer gerichte velden (Scriptbron, Afbeeldingsbron, enz.) in plaats van de standaardbron uit te breiden. Een beperkende standaardbron met gedetailleerde uitzonderingen is veiliger en makkelijker te controleren.
Wat is een CSP-overtredingrapport en hoe ziet het eruit?
Wanneer een browser een resource blokkeert, stuurt hij een JSON-payload naar je Report-endpoint. Een typisch rapport ziet er zo uit:
{
"csp-report": {
"document-uri": "https://docs.yourcompany.com/article",
"violated-directive": "script-src 'self'",
"blocked-uri": "https://cdn.example.com/widget.js",
"original-policy": "default-src 'self'; script-src 'self'"
}
}
Het blocked-uri veld geeft je precies aan welk domein je aan je toestemmingslijst moet toevoegen. Het violated-directive veld geeft aan welk directiveveld je moet updaten in de instellingen van Document360.