Document toolboxDocument toolbox

Documentatie voor klanten en partners van Digitaal Vlaanderen - bouwstenen Mijn Burgerprofiel, Verenigingsloket en e-loketondernemers


Veiligheidsmaatregelen

Om de veiligheid maximaal te garanderen, vraagt het gebruik van de Mijn Burgerprofiel-extensie extra veiligheidsmaatregelen aan de gastwebsite die de global header afneemt.

Ga naar OWASP Foundation, the Open Source Foundation for Application Security | OWASP Foundation (Open Web Mijn Burgerprofiel-headerlication Security Project®) voor meer informatie over de meestvoorkomende problemen rond veiligheid.

Single Sign-on via ACM

Via ACM met Single-Sign-on beschikken we vaak over een ID-token dat ook toegang geeft tot andere services. Dat ID-token moet altijd bewaard worden op de server. Bovendien blijft een sessie alleen geldig zo lang er gebruikersactiviteit is.

Content Security Policy

Het beveiligingsmodel van het web is gebaseerd op same-origin beleid. Het gebruik van een widget, zoals de global header, heeft een impact op een content security policy omdat een widget altijd een cross-origin resource is.

Een Content Security Policy kan de browser echter wel informeren over welke bronnen (andere origins dus) betrouwbaar zijn. Bij de configuratie mogen de origins alleen een protocol, domain en optioneel een poort bevatten.

Enkele voorbeelden van geldige origins:

Voor elke App-ID moet er een global header geconfigureerd worden. Een global header kan dus maar één App-ID bevatten.

Minimumvereisten TNI-omgeving (testing and integration)

Fetch Directive

Waarde

Beschrijving

connect-src

wss://authenticatie-ti.vlaanderen.be

 

connect-src

wss://tni.widgets.Burgerprofiel.dev-vlaanderen.be

 

connect-src

https://tni.widgets.Burgerprofiel.dev-vlaanderen.be

 

connect-src

wss://tni.contactapi.uat-vlaanderen.be

 

connect-src

https://tni.contactapi.uat-vlaanderen.be

 

connect-src

https://chat.contactcenter.dev-vlaanderen.be

 

connect-src

https://chat.contactcenter.vlaanderen.be

 

font-src

https://ui.vlaanderen.be

 

font-src

https://dij151upo6vad.cloudfront.net

 

font-src

https://assets.vlaanderen.be

 

frame-src

'self'

Alleen voor gastwebsites die een ACM-integratie hebben

frame-src

https://tni.widgets.Burgerprofiel.dev-vlaanderen.be

 

frame-src

https://tni.frontend.Burgerprofiel.dev-vlaanderen.be

 

frame-src

https://authenticatie-ti.vlaanderen.be

 

frame-src

https://idp.iamfas.belgium.be

 

frame-src

https://www.google.com

Nodig door het gebruik van recaptcha binnen het Contact-menu

img-src

data

Mijn Burgerprofiel maakt gebruik van dataprotocol om inline afbeeldingen te tonen

img-src

https://tni.widgets.Burgerprofiel.dev-vlaanderen.be

 

img-src

https://tni.widgetconfigservice.Burgerprofiel.dev-vlaanderen.be

 

style-src

'unsafe-inline'

Nodig omdat de stylesheets voor een widget dynamisch geïnjecteerd worden

script-src

https://tni.widgets.Burgerprofiel.dev-vlaanderen.be

 

script-src

https://www.google-analytics.com

Google Analytics staat standaard uit.

script-src

'unsafe-eval'

Nodig door de interne structuur van de Javascript- loader die gebruikt wordt om de widget-afhankelijkheden te beheren en door de global namespace isolatie.

worker-src

https://tni.widgets.Burgerprofiel.dev-vlaanderen.be

 

 Minimumvereisten Productie-omgeving

Fetch Directive

Waarde

Beschrijving

connect-src

wss://authenticatie.vlaanderen.be

 

connect-src

wss://prod.widgets.Burgerprofiel.vlaanderen.be

 

connect-src

https://prod.widgets.Burgerprofiel.vlaanderen.be

 

connect-src

https://burgerprofiel.vlaanderen.be

 

connect-src

https://www.burgerprofiel.be

 

connect-src

wss://contactapi.vlaanderen.be

 

connect-src

https://contactapi.vlaanderen.be

 

connect-src

https://www.google-analytics.com

 

font-src

https://ui.vlaanderen.be

 

font-src

https://dij151upo6vad.cloudfront.net

 

font-src

https://assets.vlaanderen.be

 

frame-src

'self'

Alleen voor gastwebsites die een ACM-integratie hebben

frame-src

https://prod.widgets.Burgerprofiel.vlaanderen.be

 

frame-src

https://prod.frontend.Burgerprofiel.vlaanderen.be

 

frame-src

https://burgerprofiel.vlaanderen.be

 

frame-src

https://www.burgerprofiel.be

 

frame-src

https://authenticatie.vlaanderen.be

 

frame-src

https://idp.iamfas.belgium.be

 

frame-src

https://www.google.com

Nodig door het gebruik van recaptcha binnen het Contact-menu

img-src

data

Mijn Burgerprofiel maakt gebruik van dataprotocol om inline afbeeldingen te tonen

img-src

https://prod.widgets.Burgerprofiel.vlaanderen.be

 

img-src

https://prod.widgetconfigservice.Burgerprofiel.vlaanderen.be

 

style-src

'unsafe-inline'

Nodig omdat de stylesheets voor een widget dynamisch geïnjecteerd worden

script-src

https://prod.widgets.Burgerprofiel.vlaanderen.be

 

script-src

https://www.google-analytics.com

 

script-src

'unsafe-eval'

Nodig door de interne structuur van de Javascript loader die gebruikt wordt om de widget-afhankelijkheden te beheren en door de global namespace isolatie.

worker-src

https://prod.widgets.Burgerprofiel.vlaanderen.be

 

script-src fetch directive met nonce-waarde

Een cryptografische nonce waarde zorgt ervoor dat alle script resources, geladen door een widget, automatisch vertrouwd worden. De server genereert bij elke aflevering van een Content Security Policy een unieke cryptografische nonce-waarde en voegt die toe aan de Content Security Policy.

Voorbeeld embed script met Content Security Policy nonce-waarde

<script src="https://prod.widgets.Burgerprofiel.vlaanderen.be/api/v1/widget/<id>/embed" nonce="nonce-<base64-waarde>"></script>

Voeg de "strict-dynamic" toe aan de script-src fetch directive om een script, dat al betrouwbaar is door gebruik van nonce, toe te staan nieuwe script tags toe te voegen zonder telkens een nonce attribuut te voorzien.

Herschrijf hiervoor de script-src fetch directive met de volgende waarden:

  • nonce-<base64-waarde>

  • 'unsafe-inline'

  • 'unsafe-eval'

  • 'strict-dynamic'

  • https:

Meerdere waarden toevoegen zorgt ervoor dat het juiste fallback-gedrag wordt getriggered wanneer browsers zonder ondersteuning van niveau 3 de Content Security Policy uitlezen.

frame-ancestors navigatie directive

Naast het beschrijven van de bronnen die gastwebsite kan vertrouwen, kan ook worden bepaald welke domeinen de gastwebsite mogen embedden. Schakel embedden op andere websites wel uit en houd de waarde consistent met X-Frame-Options.

Als een gastwebsite ACM-integratie voorziet, voeg dan 'self' toe als toegestane frame-ancestors waarde. Zo kan de gastwebsite worden getoond vanuit een iframe tijdens het aanmeldproces.

Request/Response 

Maatregel

Verplicht

Meer informatie

HTTPS

Ja

Elke website die Mijn Burgerprofiel wil aanbieden, moet via https:// toegankelijk zijn.

Cross-Origin Resource Sharing

Ja

Voorkomt dat externe bronnen requests sturen naar de applicatie. De applicatie moet de ondersteunde CORS zo strict mogelijk te configureren.

Ga voor meer informatie naar:

Content-Security-Policy

Ja

Zie Veiligheidsmaatregelen | Content Security Policy

X-Frame-Options

Ja

Het gebruik van i-frames is ten strengste afgeraden. Zijn i-frames toch noodzakelijk, zorg dan voor een zo strict mogelijke instelling.

Strict-Transport-Security

Ja

Verwittigt de browser om HTTPS te forceren voor alle requests naar de back-end van de applicatie.

Ga voor mee informatie naar:

Cross-Site Request Forgery

Ja

Voorkomt cross-site request forgery door een uniek token te maken die elke request valideert.

Ga voor meer informatie naar:

X-Download-Options

Ja

Kies voor "noopen" om te voorkomen dat Internet Explorer gedownloade bestanden probeert uit te voeren binnen de context van de website.

X-Content-Type-Options

Ja

Kies voor "nosniff" om te voorkomen dat een browser MIME types probeert te raden.

X-Powered-By

Nee

Maak bij voorkeur geen informatie bekend over de infrastructuur of de applicatie.

X-Robots-Tag

Nee

Vermeld bij voorkeur expliciet aan crawlers dat de inhoud van pagina's niet gecachet mag worden.

Voor de meeste pagina's is authenticatie nodig. Bijgevolg zijn die al beschermd zijn door de sessiedetectie.

Dit is een officiële website van de Vlaamse overheid - Uitgegeven door Digitaal Vlaanderen: https://www.vlaanderen.be/digitaal-vlaanderen

DISCLAIMER: http://www.vlaanderen.be/nl/disclaimer
TOEGANKELIJKHEID: http://www.vlaanderen.be/nl/toegankelijkheid