Security.txt Generator

security.txt Generator

Uitvoer volgens RFC 9116, klaar om te implementeren op /.well-known/security.txt.

Informatie over openbaarmaking

Verklaar de Canonical URL van uw security.txt om vervalsing op andere paden te voorkomen

Gegenereerde uitvoer

Genereer online RFC 9116-conforme security.txt-bestanden en bied beveiligingsonderzoekers een formeel kanaal voor kwetsbaarheidsrapportage. Real-time voorbeeld, één-klik kopiëren, direct implementeren naar /.well-known/security.txt om het actief te maken.

Gerelateerde aanbevelingen

Over security.txt: De Complete Gids voor Websitebeveiligingsonthullingsstandaarden

security.txt is een best practice voor webbeveiliging die formeel is gestandaardiseerd door de IETF (Internet Engineering Task Force) in RFC 9116, ontworpen om websites een uniforme, standaard manier te bieden om beveiligingscontactgegevens te publiceren. Simpel gezegd is het een tekstbestand dat op een vast pad op een website wordt geplaatst en beveiligingsonderzoekers (white hat hackers) vertelt: "Als u beveiligingskwetsbaarheden op mijn website vindt, is dit hoe u contact met ons kunt opnemen, dit is onze coderingssleutel, dit is ons onthullingsbeleid, wij verwelkomen uw rapporten."

Voordat de security.txt-standaard bestond, waren beveiligingscontactgegevens van websites wanordelijk. Sommige websites hadden helemaal geen beveiligingscontactgegevens, sommige begroeven het op een obscure pagina, sommige vermeldden alleen een onbeheerd info@-e-mailadres en sommige vereisten moeizaam zoeken op LinkedIn om het beveiligingsteam te vinden. Dit veroorzaakte een serieus probleem: wanneer goedgelovige beveiligingsonderzoekers kwetsbaarheden ontdekten, konden ze vaak niet het juiste kanaal vinden om ze te melden. Het resultaat was—veel kwetsbaarheden werden stil genegeerd, niet gerepareerd gelaten, totdat ze door kwaadwillende hackers werden ontdekt en uitgebuit. security.txt is geboren om dit "laatste mijl"-probleem op te lossen.

Het concept van security.txt werd voor het eerst voorgesteld door beveiligingsonderzoekers EdOverflow en Yakov Shafranovich in 2017 en kreeg al snel brede steun uit de industrie. In april 2022 werd security.txt formeel door de IETF goedgekeurd als RFC 9116, waardoor het een internationaal erkende webbeveiligingsstandaard werd. Tegenwoordig hebben grote technologiebedrijven zoals Google, GitHub, Meta (Facebook), LinkedIn en Cloudflare, evenals overheidsinstanties waaronder de Britse overheid, het Amerikaanse CISA (Cybersecurity and Infrastructure Security Agency), de Franse overheid, de Italiaanse overheid, de Nederlandse overheid en het Australian Cyber Security Centre, security.txt op hun officiële websites geïmplementeerd en bevelen ze andere organisaties publiekelijk aan om het te adopteren.

Het kernontwerp van het security.txt-bestand is heel eenvoudig—het is een gewoon tekstbestand dat bestaat uit regels in het formaat "veldnaam: waarde", vergelijkbaar met het HTTP-headerformaat. De standaard definieert twee verplichte velden: Contact (beveiligingscontactgegevens, die meerdere kunnen zijn) en Expires (bestandsvervaltijd); evenals verschillende optionele velden: Encryption (PGP-coderingssleutel-URL), Acknowledgments (dankpagina-URL), Policy (kwetsbaarheidsonthullingsbeleid-URL), Hiring (beveiligingsvacature-URL), Canonical (canonieke bestands-URL), Preferred-Languages (ondersteunde rapporttalen), CSAF (Common Security Advisory Framework-provider metadata-URL). Dit eenvoudige formaat maakt het gemakkelijk voor zowel mensen als machines om te parseren.

Waarom is het implementeren van security.txt zo belangrijk? Ten eerste verlaagt het de drempel voor kwetsbaarheidsrapportage. Beveiligingsonderzoekers hoeven geen aanzienlijke tijd te besteden aan het vinden van contactgegevens—ze kunnen het juiste rapportkanaal met één klik vinden. Ten tweede toont het de proactieve houding van een organisatie ten opzichte van beveiliging—een website met security.txt zegt in wezen "Wij nemen beveiliging serieus en verwelkomen verantwoorde rapporten." Ten derde vermindert het het risico dat kwetsbaarheden publiekelijk worden onthuld of uitgebuit: met een formeel kanaal zullen onderzoekers er niet voor kiezen kwetsbaarheden direct op Twitter of GitHub publiekelijk te onthullen omdat ze niemand kunnen bereiken. Ten vierde is het in veel industriële regelgevingseisen (financiën, gezondheidszorg, overheid) een nalevingsvereiste geworden om een kwetsbaarheidsonthullingskanaal op te zetten.

Er zijn verschillende belangrijke details om op te merken bij het implementeren van security.txt. Ten eerste moet het pad correct zijn: het standaardpad is /.well-known/security.txt en u kunt ook een kopie op /security.txt in de hoofdmap plaatsen als fallback. De .well-known-map hier is een standaard "bekende bronnen"-map gedefinieerd door RFC 8615, waar andere standaardbestanden zoals robots.txt ook op gerelateerde locaties worden geplaatst. Ten tweede moet het via HTTPS worden aangeboden—platte-tekst-HTTP wordt als onveilig beschouwd. Ten derde moet Content-Type text/plain zijn, niet text/html of andere typen. Ten vierde, voer geen cross-domeinomleidingen uit voor security.txt—als https://example.com/.well-known/security.txt doorverwijst naar https://other-domain.com/security.txt, beschouwen onderzoekers en geautomatiseerde tools dit als verdacht. Ten vijfde, vergeet niet het Expires-veld in te stellen en het regelmatig bij te werken; een verlopen security.txt wordt beschouwd als met onbetrouwbare informatie.

Het Contact-veld is het belangrijkste veld in security.txt en het enige echt essentiële veld (Expires is ook verplicht maar is slechts een tijdstempel). Contact ondersteunt drie URI-formaten: mailto: voor e-mailadressen, https: voor weblinks (zoals beveiligingsrapportformulierpagina's), tel: voor telefoonnummers. Het wordt ten zeerste aanbevolen om ten minste één mailto-e-mail en één https-formulierlink te verstrekken—formulieren voorkomen botspam, terwijl e-mail handiger is voor onderzoekers om direct gecodeerde rapporten te verzenden. Meerdere contacten kunnen op meerdere regels worden vermeld, bijvoorbeeld door tegelijkertijd zowel het beveiligingsteam-e-mailadres, het e-mailadres van de beveiligingsverantwoordelijke en links naar platforms voor kwetsbaarheden van derden te verstrekken.

Hoewel het Encryption-veld optioneel is, is het in de praktijk erg belangrijk. Wanneer beveiligingsonderzoekers een kritieke kwetsbaarheid ontdekken (zoals gebruikersgegevenslek of uitvoering van externe code), willen ze absoluut geen kwetsbaarheidsdetails in platte-tekst-e-mail verzenden—omdat e-mail tijdens verzending via meerdere servers gaat, kan elke hop worden afgeluisterd. PGP (Pretty Good Privacy) publieke sleutelcodering is de industriestandaard voor veilige communicatie. U hoeft alleen een PGP-sleutelpaar te genereren, de publieke sleutel op uw website te plaatsen (bijv. op /.well-known/pgp-key.txt) en die URL in het Encryption-veld in te voeren. Onderzoekers coderen de rapportinhoud met uw publieke sleutel en alleen degenen die de bijbehorende privésleutel bezitten, kunnen deze decoderen en lezen.

Het Policy-veld linkt naar uw Kwetsbaarheidsonthullingsbeleid (Vulnerability Disclosure Policy, VDP)-pagina, wat de sleutel is tot het opbouwen van vertrouwen bij onderzoekers. Een goede VDP moet duidelijk aangeven: testbereik (welke systemen binnen de testscope vallen en welke niet), toegestane testmethoden (bijv. SQL-injectie/XSS-testen toegestaan maar DDoS/sociale engineering/toegang tot echte gebruikersgegevens verboden), toegezegde responstijden (bijv. "Wij bevestigen de ontvangst van rapporten binnen 3 werkdagen"), of u beloningen aanbiedt en wettelijke safe harbor-toezeggingen (duidelijk aangeven dat u goedgelovige onderzoekers die de regels volgen niet zult vervolgen). Er zijn internationaal veel VDP-sjablonen beschikbaar ter referentie en het Amerikaanse CISA biedt ook een open source VDP-sjabloon aan.

Naast beveiligingscontact zelf heeft security.txt verschillende "verrassings"-velden. Het Acknowledgments-veld bouwt een Security Hall of Fame op—publiekelijk onderzoekers bedanken die u helpen kwetsbaarheden te vinden, hun werk erkennen en ook dienen als gemeenschapsopbouw. Het Hiring-veld is een heel slim ontwerp: mensen die kwetsbaarheden op uw website kunnen vinden, zijn inherent uitstekend beveiligingstalent en het plaatsen van een wervingslink in security.txt is het meest precieze kanaal om beveiligingstalent te werven. Veel bedrijven hebben uitstekende beveiligingsengineers aangenomen via security.txt. Het Canonical-veld is een beveiligingsoverweging—het voorkomt dat aanvallers uw security.txt op andere domeinen vervalsen.

Wat betreft de veelvoorkomende zorg over spam: in de praktijk melden de meeste organisaties die security.txt hebben geïmplementeerd geen significante toename van spam. Dit komt omdat: ten eerste, spammers doorgaans geen e-mailadressen verkrijgen door security.txt te crawlen; ten tweede, https:-formulierlinks kunnen worden gebruikt in plaats van direct mailto-e-mails te plaatsen en het toevoegen van CAPTCHA aan formulieren bots volledig kan blokkeren; ten derde, speciale beveiligings-e-mails (bijv. security@) meestal met strikte spamfilters zijn geconfigureerd. Daarentegen wegen de kosten van het missen van kritieke kwetsbaarheidsrapporten als gevolg van een gebrek aan een beveiligingscontactkanaal veel zwaarder dan de mogelijke toename van kleine hoeveelheden spam.

Deze generator is gebouwd in strikte overeenstemming met de RFC 9116-standaard en alle uitvoerformaten zijn genormaliseerd: het Contact-veld herkent automatisch voorvoegsels, het Expires-veld gebruikt het standaard ISO 8601 UTC-tijdformaat en Preferred-Languages wordt automatisch ingesteld op basis van de taal die u gebruikt. De gegenereerde inhoud kan direct worden gekopieerd en geïmplementeerd naar het /.well-known/security.txt-pad zonder enige wijziging. Bovendien wordt alle configuratie lokaal in uw browser uitgevoerd en nooit naar een server verzonden—uw beveiligingscontactgegevens blijven altijd op uw apparaat. Het implementeren van security.txt kost slechts 5 minuten, maar het beveiligingscommunicatiekanaal dat het opzet, kan u helpen een ernstig beveiligingsincident in de toekomst te voorkomen.

Toepassingsgevallen

  • Stel formele kanalen voor kwetsbaarheidsrapportage in voor bedrijfswebsites, SaaS-platforms en e-commercesites door Contact-e-mailadressen en Policy-beveiligingspagina's te configureren
  • Publiceer URL's van PGP-coderingssleutels zodat beveiligingsonderzoekers gevoelige kwetsbaarheidsdetails versleuteld kunnen verzenden, waardoor wordt voorkomen dat kwetsbaarheidsinformatie onderweg wordt onderschept
  • Stel URL's van Acknowledgments-pagina's (Beveiligings Hall of Fame) in om onderzoekers die kwetsbaarheden melden publiekelijk te bedanken en vertrouwen op te bouwen in de beveiligingsgemeenschap
  • Configureer Hiring-vacaturelinks om proactief wervingsinformatie van het team te tonen aan beveiligingsonderzoekers en white hat hackers, en beveiligingstalent aan te trekken
  • Stel Expires-tijdstempels in om teams eraan te herinneren regelmatig beveiligingscontactgegevens te herzien en bij te werken, waardoor onbereikbare contacten als gevolg van verouderde informatie worden voorkomen waardoor kwetsbaarheden niet worden gemeld
  • Configureer Canonical-velden om de canonieke URL van uw security.txt-bestand te declareren, waardoor aanvallers geen kwaadaardige security.txt-inhoud kunnen vervalsen die onderzoekers misleidt
  • Voldoe aan de vereisten van het Kwetsbaarheidsonthullingsbeleid (VDP) voor websites met hoge nalevingseisen in de overheids-, financiële en gezondheidszorgsector, in overeenstemming met de beste praktijken uit de sector
  • Stel snel beveiligingscontacttoegangspunten in voor open source-projecten, persoonlijke blogs en API-diensten, en toon een serieuze houding ten opzichte van beveiligingsproblemen

Hoe te gebruiken

  1. Vul de beveiligingscontact-e-mailadressen of URL's in het Contact-gedeelte in (één per regel, meerdere regels ondersteund; e-mails vereisen het mailto:-voorvoegsel, web-URL's vereisen het https:-voorvoegsel)
  2. Configureer optionele velden indien nodig: Encryption (PGP publieke sleutel-URL), Acknowledgments (Hall of Fame-pagina), Policy (kwetsbaarheidsonthullingsbeleidspagina), Hiring (beveiligingsvacaturepagina), Canonical (canonieke bestands-URL), enz.
  3. Stel de Expires-vervaltijd in (UTC-tijd in ISO 8601-formaat, bijvoorbeeld 2027-12-31T23:59:59Z; aanbevolen instelling is 6-12 maanden in de toekomst)
  4. Bekijk een real-time voorbeeld van de gegenereerde inhoud aan de rechterkant; bevestig dat het formaat correct is en klik vervolgens op de knop Kopiëren
  5. Maak een .well-known-map in de hoofdmap van uw website en sla de inhoud erin op als security.txt
  6. Configureer uw webserver (Nginx/Apache/Caddy, enz.) om ervoor te zorgen dat toegang via https://uw-domein/.well-known/security.txt mogelijk is met Content-Type ingesteld op text/plain

Functies

  • Volgt strikt de nieuwste RFC 9116-standaard: uitvoerformaat is volledig conform en klaar voor productie-implementatie
  • Ondersteuning voor meerdere Contact: één invoer per regel, e-mail (mailto:), web-URL (https:) en telefoon (tel:) kunnen onafhankelijk worden gedeclareerd
  • Volledige velddekking: verplichte velden Contact en Expires plus alle optionele velden, waaronder Encryption, Acknowledgments, Policy, Hiring, Canonical en Preferred-Languages
  • Real-time voorbeeldgeneratie: security.txt-inhoud wordt onmiddellijk bijgewerkt wanneer u een configuratie wijzigt—WYSIWYG, geen genereerknop nodig
  • Automatische taalverklaring: voegt automatisch het Preferred-Languages-veld toe op basis van de huidige paginataal om rapportage door internationale beveiligingsonderzoekers te vergemakkelijken
  • ISO 8601-tijdformaat: Expires-veld gebruikt standaard UTC-tijdformaat conform de nieuwste RFC-specificaties
  • Veldformaatvalidatie: controleert automatisch Contact-voorvoegsels (mailto:/https:/tel:) en Expires-tijdformaat om ongeldige uitvoer te voorkomen
  • Eén-klik kopiëren: klik om de volledige inhoud naar het klembord te kopiëren—plak en implementeer onmiddellijk
  • Ingebouwde voorbeeldsjablonen: vooraf ingevuld met voorbeeldformaat zodat u snel uw eigen gegevens kunt invoeren in plaats van vanaf nul te beginnen
  • Pure frontend lokale uitvoering: configuratie wordt lokaal in uw browser verwerkt en nooit naar een server geüpload
  • Implementatiepadbegeleiding: toont na generatie het standaard /.well-known/security.txt-implementatiepad en belangrijke configuratiepunten voor de webserver
  • Zonder watermerk: gegenereerde bestanden bevatten geen watermerken of beperkingen, geschikt voor direct gebruik op commerciële websites

Veelgestelde vragen

Wat is een security.txt-bestand? Waarom heeft mijn website er een nodig?

security.txt is een webbeveiligingsstandaard gedefinieerd door de IETF in RFC 9116, ontworpen om websites een gestandaardiseerde manier te bieden om beveiligingscontactgegevens te publiceren. Wanneer beveiligingsonderzoekers (white hat hackers) beveiligingskwetsbaarheden op uw website ontdekken, moeten ze weten wie ze moeten contacteren, hoe ze hun rapporten moeten coderen en welk onthullingsbeleid ze moeten volgen. Zonder security.txt vinden onderzoekers mogelijk niet de juiste persoon en kunnen kwetsbaarheden publiekelijk worden onthuld of zelfs kwaadwillig worden uitgebuit. Google, GitHub, Facebook/Meta, de Britse overheid, het Amerikaanse CISA en de regeringen van Frankrijk, Italië, Nederland en Australië hebben deze standaard allemaal aangenomen.

Waar moet security.txt op een website worden geplaatst?

Volgens de RFC 9116-standaarden moet security.txt op het /.well-known/security.txt-pad worden geplaatst (dat wil zeggen in de .well-known-map in de hoofdmap van uw website). U kunt ook een kopie op /security.txt in de hoofdmap plaatsen als fallback. Het moet toegankelijk zijn via HTTPS en het Content-Type moet text/plain zijn. Plaats het niet op andere paden, anders herkennen geautomatiseerde beveiligingsscantools het niet.

Welke contactformaten ondersteunt het Contact-veld? Kan ik meerdere contacten invoeren?

Er worden drie formaten ondersteund: e-mailadressen moeten het mailto:-voorvoegsel gebruiken (bijv. mailto:security@example.com), web-URL's moeten het https:-voorvoegsel gebruiken (bijv. https://example.com/security-report), telefoonnummers moeten het tel:-voorvoegsel gebruiken (bijv. tel:+1-201-555-0123). U kunt meerdere contacten invoeren, één per regel—beveiligingsonderzoekers kunnen het handigste kanaal kiezen om contact met u op te nemen. Het wordt aanbevolen om ten minste één e-mailadres en één webformulierlink te verstrekken.

Is het Expires-veld verplicht? Wat zijn de formaatvereisten?

Expires is een verplicht veld (Contact is ook verplicht; alle andere zijn optioneel). Expires geeft de vervaltijd van de security.txt-inhoud aan en moet ISO 8601-formaat UTC-tijd gebruiken, bijv. 2027-12-31T23:59:59Z (Z geeft UTC-tijdzone aan). Het wordt aanbevolen om de vervaldatum 6-12 maanden na aanmaak in te stellen om uzelf eraan te herinneren regelmatig beveiligingscontactgegevens bij te werken. Na het verlopen beschouwen geautomatiseerde tools de bestandsinformatie als mogelijk ongeldig.

Waarom is het Encryption-veld nodig? Moet ik per se een PGP-publieke sleutel opnemen?

Het Encryption-veld verwijst naar de locatie van uw PGP-publieke sleutel. Beveiligingsonderzoekers kunnen deze publieke sleutel gebruiken om kwetsbaarheidsrapporten te coderen voordat ze ze verzenden, waardoor wordt voorkomen dat kwetsbaarheidsdetails tijdens e-mailtransmissie worden onderschept. Dit is geen verplicht veld, maar het wordt ten zeerste aanbevolen—omdat kwetsbaarheidsinformatie zeer gevoelig is, kunnen platte-tekst-e-mails worden afgeluisterd door ISP's, mailserverbeheerders of aanvallers. U kunt uw PGP-publieke sleutel op /.well-known/pgp-key.txt plaatsen en die URL in het Encryption-veld invoeren.

Waar dient het Acknowledgments-veld voor? Waarom een dankpagina aanmaken?

Het Acknowledgments-veld verwijst naar een openbare dankpagina (ook wel een Security Hall of Fame genoemd), met de namen of ID's van onderzoekers die eerder beveiligingskwetsbaarheden bij u hebben gemeld. Dit is een publieke erkenning van het werk van beveiligingsonderzoekers en een effectieve manier om meer white hat-onderzoekers aan te trekken om u te helpen kwetsbaarheden te vinden. Veel beveiligingsonderzoekers geven prioriteit aan het testen van websites met openbare dankmechanismen, omdat dit betekent dat hun bijdragen worden erkend.

Naar welke inhoud moet het Policy-veld linken?

Het Policy-veld moet linken naar uw Kwetsbaarheidsonthullingsbeleid (Vulnerability Disclosure Policy, VDP)-pagina. Deze pagina moet duidelijk aangeven: welke testactiviteiten zijn toegestaan (en welke verboden zijn, bijv. geen DDoS, geen toegang tot gebruikersgegevens), responstijdverbintenissen voor kwetsbaarheidsrapporten, of u beloningen aanbiedt en uw wettelijke toezeggingen voor legitiem beveiligingsonderzoek (bijv. het niet vervolgen van goedgelovige onderzoekers). Een duidelijk Policy geeft beveiligingsonderzoekers wettelijke gemoedsrust en stelt hen gerust dat ze veilig problemen bij u kunnen melden.

Waar is het Canonical-veld voor? Moet ik het invullen?

Het Canonical-veld declareert de canonieke URL van het security.txt-bestand zelf. Een website kan security.txt toegankelijk hebben via meerdere domeinen of paden (bijv. example.com en www.example.com); het Canonical-veld vertelt onderzoekers welke URL de officiële, vertrouwde versie is. Dit voorkomt dat aanvallers een vervalste security.txt op een bepaald pad plaatsen om onderzoekers te misleiden om kwetsbaarheidsrapporten naar de aanvaller te sturen. Het wordt aanbevolen om de URL van uw officiële domein in te voeren, bijv. https://example.com/.well-known/security.txt.

Wat betekent het Preferred-Languages-veld?

Preferred-Languages vertelt beveiligingsonderzoekers welke talen uw beveiligingsteam kan verwerken voor rapporten, uitgedrukt als door komma's gescheiden taalcodes (bijv. nl, en, zh-CN). Deze generator stelt dit veld automatisch in op basis van de paginataal die u momenteel gebruikt. Dit is belangrijk omdat beveiligingsonderzoek wereldwijd is—onderzoekers kunnen zich in elk land bevinden en het vooraf aangeven van ondersteunde talen voorkomt communicatiestoringen als gevolg van taalbarrières.

Moet het Hiring-veld ook in security.txt worden geplaatst?

Ja, Hiring is een van de optionele velden gedefinieerd in de RFC 9116-standaard. Dit veld verwijst naar de wervingspagina van uw beveiligingsteam. Beveiligingsonderzoekers zijn zelf uitstekende kandidaten voor beveiligingstalent—hun vermogen om kwetsbaarheden op uw website te vinden, toont sterke beveiligingsvaardigheden aan. Het plaatsen van een wervingslink in security.txt is een zeer gerichte manier om beveiligingstalent te werven. Veel bekende bedrijven (waaronder Google) nemen wervingslinks op in hun security.txt-bestanden.

Zal het publiceren van een beveiligingscontact-e-mailadres leiden tot grote hoeveelheden spam?

Dit is de meest voorkomende zorg onder websitebeheerders. Er zijn verschillende strategieën om spam te verminderen: ten eerste, in plaats van direct e-mailadressen te publiceren, publiceert u de URL van een beveiligingsrapportage-webformulier (https:-voorvoegsel), waar u CAPTCHA kunt toevoegen om bots te filteren; ten tweede, gebruikt u een speciale beveiligings-e-mailalias (bijv. security@) en configureert u sterke spamfilters; ten derde, biedt u PGP-publieke sleutelcodering aan—geautomatiseerde spamverzenders gebruiken geen PGP-codering; ten vierde, geeft u duidelijk in uw Policy aan dat u alleen rapporten met betrekking tot beveiligingskwetsbaarheden accepteert. In de praktijk melden de meeste websites die security.txt hebben geïmplementeerd een verwaarloosbare toename van spam, maar een aanzienlijke toename van kwetsbaarheidsrapporten.

Moet security.txt digitaal worden ondertekend? Hoe doe ik dat?

RFC 9116 beveelt aan (maar vereist niet) om OpenPGP cleartext-handtekeningen te gebruiken om security.txt digitaal te ondertekenen, zodat onderzoekers kunnen verifiëren dat het bestand inderdaad officieel door de website is gepubliceerd en niet door aanvallers is gemanipuleerd. De methode is om het bestand in clearsign-modus te ondertekenen met GPG: gpg --clearsign -o security.txt.sig security.txt, en gebruik vervolgens de ondertekende inhoud (beginnend met -----BEGIN PGP SIGNED MESSAGE-----) als de uiteindelijke security.txt-inhoud. Dit is echter een geavanceerde bewerking—de meeste websites kunnen normaal functioneren zonder ondertekening.

Hoe moet ik Nginx/Apache/Caddy configureren voor security.txt?

Belangrijkste configuratievereisten: zorg ervoor dat het /.well-known/security.txt-pad toegankelijk is, dat Content-Type text/plain retourneert, dat HTTPS wordt gebruikt en dat u dit pad niet omleidt (vooral niet omleiden naar andere domeinen). Nginx kan exacte locatieovereenstemming gebruiken: location = /.well-known/security.txt { default_type text/plain; alias /path/to/security.txt; }; Apache moet ervoor zorgen dat .htaccess de toegang tot de .well-known-map niet blokkeert; Caddy kan handle_path gebruiken om direct te specificeren.

Mijn website is erg klein (persoonlijke blog/open source-project)—heb ik nog steeds security.txt nodig?

Het wordt ten zeerste aanbevolen. Ongeacht de grootte van de website, zolang u gebruikersgegevens heeft of diensten op internet aanbiedt, kunnen er beveiligingskwetsbaarheden bestaan. De implementatiekosten van security.txt zijn extreem laag—genereren met deze tool kost slechts 2 minuten en vereist het plaatsen van één bestand. Grote bedrijven zoals Google en GitHub gebruiken het, en individuele ontwikkelaars en open source-projecten kunnen het ook gebruiken. Het is een zeer kosteneffectieve beveiligingspraktijk: bijna nul kosten, maar het geeft goedgelovige onderzoekers die kwetsbaarheden vinden een kanaal om u over problemen te informeren, in plaats van stil te vertrekken of publiekelijk te onthullen.

Wat is het verschil tussen security.txt en robots.txt?

Beide zijn standaard tekstbestanden die onder /.well-known/ (of de hoofdmap) worden geplaatst, maar hun doeleinden zijn totaal verschillend: robots.txt is voor crawlers van zoekmachines en vertelt hen welke paden ze niet moeten crawlen; security.txt is voor beveiligingsonderzoekers en vertelt hen hoe ze contact met u kunnen opnemen als ze kwetsbaarheden vinden. De ene is gericht op zoekmachines, de andere op beveiligingsonderzoekers—ze vullen elkaar aan zonder conflicten en kunnen tegelijkertijd worden geïmplementeerd.

Probleemoplossing

Toegang tot /.well-known/security.txt retourneert een 404-fout

Er zijn drie veelvoorkomende oorzaken: ten eerste is het bestand niet op de juiste locatie geplaatst—controleer of het pad het security.txt-bestand is in de .well-known-map in de hoofdmap van de website (let op: .well-known is een verborgen map die met een punt begint); ten tweede blokkeert de webserverconfiguratie de toegang tot mappen die met een punt beginnen (Apache .htaccess- of Nginx deny-regels kunnen dotfile-mappen blokkeren); ten derde sturen Nginx/Apache herschrijfregels (zoals frontend routing history-modus) verzoeken door naar index.html. Oplossing: controleer het bestandspad en voeg expliciet een locatieregel toe voor /.well-known/security.txt in de serverconfiguratie.

Toegang tot security.txt wordt omgeleid naar de inlogpagina of startpagina

Veel single-page applicaties (SPA's) of websites met authenticatie leiden alle niet-overeenkomende paden om naar de startpagina of inlogpagina. Dit voorkomt dat geautomatiseerde tools security.txt vinden. Oplossing: voeg een uitzondering toe voor het /.well-known/security.txt-pad in de serverconfiguratie zodat dit pad de bestandsinhoud direct retourneert, zonder SPA-routering of authenticatie-middlewareverwerking. Dit is de meest voorkomende valkuil bij het implementeren van security.txt.

Browser downloadt security.txt in plaats van de inhoud weer te geven

Dit gebeurt omdat de server een onjuist Content-Type retourneert, mogelijk ingesteld op application/octet-stream of een ander binair type in plaats van text/plain. Oplossing: stel Content-Type expliciet in op text/plain; charset=utf-8 voor security.txt in de webserverconfiguratie. Nginx vereist default_type text/plain of add_header Content-Type text/plain; Apache verwerkt dit meestal automatisch, maar als er problemen zijn, kunt u de AddType-instructie gebruiken om het te forceren.

Ik heb een e-mail in het Contact-veld ingevoerd maar krijg een formaatfout

Waarden van het Contact-veld moeten URI-voorvoegsels bevatten: e-mailadressen moeten beginnen met mailto: (bijv. mailto:security@example.com, niet alleen security@example.com), web-URL's moeten beginnen met https: (niet alleen example.com/security), telefoonnummers moeten beginnen met tel:. Dit wordt expliciet vereist door de RFC 9116-standaarden—omdat het Contact-veld meerdere contactmethoden ondersteunt, maakt het ontbreken van voorvoegsels het voor parsers onmogelijk om het type te bepalen.

Expires-tijdformaat wordt weergegeven als onjuist

Expires moet ISO 8601-formaat UTC-tijd gebruiken in het formaat JJJJ-MM-DDTHH:MM:SSZ, met een Z aan het einde die de UTC-tijdzone aangeeft (schrijf geen lokale tijdzone-offsets zoals +01:00). Correct voorbeeld: 2027-12-31T23:59:59Z. Gebruik geen andere formaten zoals 2027/12/31, 31 dec 2027 of 2027-12-31 23:59:59—deze zijn niet-conform.

Ik heb security.txt geïmplementeerd maar online detectietools zeggen nog steeds dat het niet kan worden gevonden

Controleer de volgende punten: ten eerste, zorg ervoor dat toegang HTTPS gebruikt (HTTP-toegang telt niet—RFC vereist HTTPS); ten tweede, zorg ervoor dat toegang correct is met zowel www- als non-www-domein (als uw website in beide domeinversies bestaat, is het aanbevolen om het hoofddomein in het Canonical-veld te declareren en security.txt onder beide domeinen te plaatsen of juiste 301-omleidingen in te stellen); ten derde, controleer of de CDN-cache is gewist van oude inhoud; ten vierde, bevestig dat de server geen omleidingen (301/302) naar andere URL's retourneert op het security.txt-pad—RFC bepaalt dat omleidingen door tools kunnen worden geweigerd.

Woordenlijst

RFC 9116
Het officiële security.txt-standaarddocument gepubliceerd door de IETF, genummerd 9116, uitgebracht in april 2022. Definieert alle specificatiedetails voor het security.txt-bestandsformaat, velden, implementatiepaden, MIME-typen, enz. en is de gezaghebbende basis voor security.txt-implementatie.
.well-known-map
Een Web-standaardmap gedefinieerd door RFC 8615, gebruikt voor het opslaan van gestandaardiseerde metadata-bestanden voor websites (zoals security.txt, robots.txt, apple-app-site-association, enz.), met een vast pad van de .well-known-map onder de hoofdmap van de website.
VDP (Kwetsbaarheidsonthullingsbeleid)
Kwetsbaarheidsonthullingsbeleid, dat beschrijft welke beveiligingstests een website toestaat, hoe kwetsbaarheden te melden, responstijdverbintenissen, wettelijke safe harbor-bepalingen, enz. Het Policy-veld in security.txt moet naar de VDP-pagina linken.
PGP/GPG-codering
Pretty Good Privacy/GNU Privacy Guard, een asymmetrische coderingsstandaard. Beveiligingsonderzoekers gebruiken de publieke sleutel van de website om kwetsbaarheidsrapporten te coderen en alleen de website die de privésleutel bezit, kan ze decoderen, waardoor wordt voorkomen dat kwetsbaarheidsdetails tijdens verzending worden onderschept.
ISO 8601
Een datum- en tijdweergaveformaat ontwikkeld door de Internationale Organisatie voor Standaardisatie; RFC 9116 vereist dat het Expires-veld dit formaat in UTC-tijd gebruikt (bijv. 2027-12-31T23:59:59Z, waarbij Z de UTC-tijdzone aangeeft).
Hall of Fame (Beveiligingsbedankjes)
De dankpagina waarnaar het Acknowledgments-veld verwijst, die publiekelijk de namen/ID's vastlegt van onderzoekers die beveiligingskwetsbaarheden bij de website hebben gemeld, en fungeert als publieke erkenning van bijdragen aan beveiligingsonderzoek.
White Hat Hacker
Beveiligingsonderzoekers die beveiligingskwetsbaarheden ontdekken en op verantwoorde wijze onthullen voor goedgelovige doeleinden, in tegenstelling tot kwaadwillende hackers (black hats) die kwetsbaarheden misbruiken voor aanvallen. security.txt biedt een formeel communicatiekanaal voor white hat-onderzoekers.
Canonieke URL
Het Canonical-veld in security.txt declareert de officiële URL van het bestand zelf, waardoor wordt voorkomen dat aanvallers vervalste security.txt-bestanden op andere paden of domeinen plaatsen om onderzoekers te misleiden.

RFC 9116 security.txt Veld Snelreferentietabel

Hieronder staan alle velden gedefinieerd door de security.txt-standaard en hun vereisten:

VeldnaamVerplicht/OptioneelMeerdere toegestaan?WaardeformaatBeschrijving
Contact✅ Verplicht✅ Meerdere regels toegestaanmailto:/https:/tel: URIBeveiligingscontactgegevens, ondersteunt e-mail-, web-URL- en telefoonformaten
Expires✅ Verplicht❌ Precies éénISO 8601 UTC-tijdVervaltijd van bestandsinhoud; na verlopen wordt informatie als mogelijk ongeldig beschouwd
Encryption⬜ Optioneel✅ Meerdere regels toegestaanhttps: URIPGP-publieke-sleutellocatie-URL voor het coderen van gevoelige kwetsbaarheidsrapporten
Acknowledgments⬜ Optioneel✅ Meerdere regels toegestaanhttps: URISecurity Hall of Fame/dankpagina-URL, bedankt kwetsbaarheidsmelders publiekelijk
Policy⬜ Optioneel✅ Meerdere regels toegestaanhttps: URIKwetsbaarheidsonthullingsbeleid (VDP) pagina-URL, beschrijft rapportageregels en reikwijdte
Hiring⬜ Optioneel✅ Meerdere regels toegestaanhttps: URIBeveiligingsteam vacaturepagina-URL, werft talent van beveiligingsonderzoekers
Canonical⬜ Optioneel✅ Meerdere regels toegestaanhttps: URICanonieke URL van het security.txt-bestand zelf, voorkomt vervalsing
Preferred-Languages⬜ Optioneel❌ Precies éénTaalcodes (kommagescheiden)Door beveiligingsteam ondersteunde talen, bijv. nl, en, zh-CN
CSAF⬜ Optioneel✅ Meerdere regels toegestaanhttps: URICommon Security Advisory Framework-provider metadata-URL

Voorbeelden van security.txt-configuratie voor veelvoorkomende webservers

Na het genereren van security.txt-inhoud configureert u het juiste toegangspad en Content-Type op uw server:

WebserverConfiguratie Belangrijkste PuntenOpmerkingen
Nginxlocation = /.well-known/security.txt { default_type text/plain; alias /var/www/.well-known/security.txt; add_header Cache-Control "public, max-age=3600"; }Gebruik exacte overeenkomst (=), specificeer default_type als text/plain om te voorkomen dat Nginx txt-bestanden als binair behandelt
ApacheZorg ervoor dat de .well-known-map niet wordt geblokkeerd door .htaccess Deny-regels; plaats het bestand eenvoudig in de .well-known-map onder de hoofdmap van de websiteApache retourneert standaard text/plain voor .txt-bestanden, maar controleer of mod_rewrite-regels dit pad niet herschrijven
Caddyhandle_path /.well-known/security.txt { file_server { root /var/www } }Caddy gebruikt standaard HTTPS en verwerkt txt-bestand-MIME-typen correct; eenvoudigste configuratie
Cloudflare Pages/Vercel/NetlifyPlaats security.txt in public/.well-known/security.txt; na implementatie zorgt statische bediening voor correcte toegangStatische hostingplatforms verwerken meestal automatisch het juiste Content-Type; controleer of platforms de .well-known-map niet negeren wanneer deze met een punt begint
CDN/Reverse ProxyZorg ervoor dat CDN's of WAF's security.txt niet blokkeren of te lang in cache plaatsen; aanbevolen Cache-Control-instelling is max-age=3600 (1 uur)Vergeet niet de CDN-cache te wissen na het bijwerken van security.txt, anders zien onderzoekers mogelijk de oude versie

Privacy & Security

Alle configuratiehandelingen in deze generator worden volledig lokaal in uw browser uitgevoerd. Geen van de informatie die u invoert—beveiligingscontact-e-mails, PGP-sleutel-URL's, vacaturelinks of andere gegevens—wordt naar een server verzonden, noch verzameld of opgeslagen. Alle invoerinhoud wordt onmiddellijk gewist wanneer de pagina wordt vernieuwd of gesloten. De gegenereerde security.txt-bestandsinhoud bestaat alleen op uw klembord en op servers die u implementeert; GeekFormat bewaart geen kopieën.