← Alle checks
BeveiligingTypische ernst: Laag

Controle van security.txt

Controleert of je een security.txt-bestand (RFC 9116) publiceert zodat onderzoekers kwetsbaarheden kunnen melden.

Wat het checkt

Deze controle kijkt of je een security.txt-bestand publiceert volgens de standaard RFC 9116. Dat bestand vertelt beveiligingsonderzoekers hoe ze een gevonden probleem bij je kunnen melden. De scanner controleert alleen of het bestaat en bereikbaar is.

Waarom het belangrijk is

Zonder security.txt weet iemand die een fout op je site ontdekt misschien niet wie hij moet waarschuwen, en publiceert die het mogelijk of negeert het. Het hebben ervan maakt verantwoorde openbaarmaking mogelijk en straalt volwassenheid op beveiligingsvlak uit. Het is niet verplicht, maar wel een steeds meer verwachte goede gewoonte.

Hoe je het oplost

Maak een tekstbestand aan op /.well-known/security.txt met minstens een contactveld, zoals een e-mailadres of een formulier. Voeg ook de vervaldatum toe die de standaard vereist. Het is een eenvoudig statisch bestand dat je samen met de rest van je site kunt uitrollen.

Hoe deze controle werkt

Scanaris vraagt /.well-known/security.txt op, de standaardlocatie uit RFC 9116, en als die er niet is, probeert hij /security.txt in de root, de oude locatie. Hij telt het bestand alleen als aanwezig als het 200 antwoordt en een regel bevat die begint met Contact:, het enige verplichte veld naast Expires. Dat sluit single-page apps uit die voor elk pad hun HTML teruggeven. Vindt hij het niet, dan opent hij een informatieve bevinding: het kost je geen punten, omdat het ontbreken geen beveiligingsfout is; het is een goede gewoonte die je mist.

Waar het voor dient

Wanneer iemand een fout in je site vindt (een onderzoeker, een nieuwsgierige gebruiker, een ander bedrijf), moet hij weten aan wie hij het moet melden. Zonder duidelijk kanaal is het gebruikelijke gevolg dat hij het niet meldt, of het publiceert, of naar het algemene contactformulier schrijft dat niemand leest. security.txt is een tekstbestand op een bekend pad waar je zegt "schrijf me hier, in deze taal, en dit is mijn beleid". Mensen en tools lezen het, en steeds meer bug-bountyprogramma's en verzekeraars nemen het als vanzelfsprekend aan. Het beschermt ook jou: het maakt duidelijk dat je verantwoorde meldingen accepteert en onder welke voorwaarden.

Hoe je het aanmaakt

Een minimaal geldig bestand:

Contact: mailto:security@jouwdomein.nl
Expires: 2027-10-01T00:00:00.000Z
Preferred-Languages: nl, en
Canonical: https://jouwdomein.nl/.well-known/security.txt
  • Contact (verplicht): een mailto:, een formulier-URL of een tel:. Je mag er meerdere opgeven, in volgorde van voorkeur. De mailbox moet bestaan en gelezen worden.
  • Expires (verplicht): datum in ISO 8601-formaat waarna het bestand niet meer geldig is. De RFC raadt minder dan een jaar aan: zet een herinnering om het te vernieuwen.
  • Preferred-Languages, Policy (URL van je disclosurebeleid), Encryption (je PGP-sleutel) en Acknowledgments (een bedankpagina) zijn optioneel.
  • Canonical geeft de officiële URL van het bestand aan; handig als je het bestand met PGP ondertekent zodat niemand een vals exemplaar kan publiceren.

Waar je het neerzet

  • Nuxt, Next.js, Vite, Astro: maak public/.well-known/security.txt; het wordt ongewijzigd geserveerd. Controleer dat je .gitignore geen mappen negeert die met een punt beginnen.
  • Vercel en Netlify: hetzelfde, in de openbare map van het project.
  • nginx of Apache: een bestand op /.well-known/security.txt in de geserveerde map; als je applicatie alle routes afvangt, voeg dan een uitzondering toe voor /.well-known/.
  • WordPress: upload het bestand via FTP naar .well-known/ in de root, of gebruik een plugin die het genereert.

Serveer het als text/plain en over HTTPS. Heb je veel domeinen, dan heeft elk zijn eigen bestand nodig of moet het doorverwijzen naar het canonieke.

Controleer of het opgelost is

curl -si https://jouwdomein.nl/.well-known/security.txt | grep -iE "^(HTTP|content-type|contact|expires)"

Verwacht: 200, type text/plain, een regel Contact: en een regel Expires: met een datum in de toekomst.

Veelgestelde vragen

Krijg ik dan meer spam of mails van "premiejagers"?

Er komt wat post van lage kwaliteit binnen; dat is de prijs van bereikbaar zijn. Een eenvoudig filter en een duidelijk beleid (wat telt als geldige melding, of je betaalt of niet) beperken de ruis. Wat het je bespaart, is het alternatief: het via Twitter te weten komen.

Kan ik gewoon naar het algemene contactformulier verwijzen?

Dat kan, maar een eigen mailbox die iemand nakijkt is beter. Als marketing het algemene formulier leest, kan een kwetsbaarheidsmelding weken onderweg zijn naar de juiste persoon.

Waarom telt het niet mee voor het cijfer?

Omdat het voorbereiding meet, geen blootstelling. De andere beveiligingscontroles, die wel meetellen, staan in de beveiligingschecklist vóór de lancering.

Check het op je site

Scan je site gratis en zie of deze en 44 andere checks slagen, met een fixprompt voor elk probleem.

Mijn site gratis scannen

Gerelateerde checks