security.txt podle RFC 9116: vytvoření, umístění a kontrola
Soubor security.txt zveřejňuje ověřitelný kontakt a pravidla pro odpovědné hlášení zranitelností. Nezabezpečuje web a nedává automatické svolení k testování — pomáhá pouze najít správný komunikační kanál.
Platný soubor zveřejněte přes HTTPS na /.well-known/security.txt. Musí obsahovat nejméně jedno pole Contact a právě jedno budoucí Expires. Kontakt průběžně ověřujte — nefunkční adresa je horší než žádný slib.
Co security.txt řeší — a co nikoliv
RFC 9116 definuje strojově čitelný textový soubor, ve kterém provozovatel zveřejní kontakt a informace k odpovědnému oznámení zranitelnosti. Výzkumník tak nemusí hledat obecný formulář nebo odhadovat, komu citlivý nález poslat.
Soubor není bezpečnostní ochrana, monitoring ani automatická vulnerability disclosure policy. Jeho existence také neznamená oprávnění testovat cizí systém. Rozsah povoleného jednání, zakázané techniky a případný safe harbor patří do samostatné stránky odkazované polem Policy.
Správná cesta, HTTPS a Content-Type
Pro webové služby RFC vyžaduje cestu https://example.com/.well-known/security.txt. Kořenová varianta /security.txt slouží jen pro starší kompatibilitu nebo může přesměrovat na autoritativní umístění pod /.well-known/. Pokud existují obě, použije se well-known varianta.
- Soubor je dostupný přes platné HTTPS.
- Odpověď používá
text/plaina UTF-8. - Každé pole je na samostatném řádku ve tvaru
Název: hodnota. - Soubor platí pro host, ze kterého byl stažen. Automaticky nepokrývá subdomény.
Dvě povinná pole a užitečné volitelné údaje
- Contact
- Povinné a opakovatelné URI pro oznámení nálezu, například
mailto:nebo zabezpečená kontaktní stránka. Pořadí vyjadřuje preferenci. - Expires
- Povinné právě jednou. Datum a čas v RFC 3339 určují, dokdy mají být informace považované za aktuální. RFC doporučuje méně než rok dopředu.
- Canonical
- HTTPS adresa autoritativního security.txt. Je zvlášť vhodná u digitálně podepsaného souboru.
- Preferred-Languages
- Jazykové tagy, ve kterých dokážete oznámení zpracovat, například
cs, en. - Policy
- HTTPS odkaz na pravidla odpovědného oznamování a vymezení rozsahu.
- Encryption
- URI pro získání šifrovacího klíče. Samotný klíč se do hodnoty pole nevkládá.
Střídmý příklad pro menší web
Uveďte pouze kanály, které skutečně sledujete a umíte obsloužit. Datum v příkladu nahraďte vlastním termínem a obnovte jej ještě před vypršením.
Contact: mailto:security@example.com
Contact: https://example.com/hlaseni-zranitelnosti/
Expires: 2027-08-01T00:00:00Z
Preferred-Languages: cs, en
Canonical: https://example.com/.well-known/security.txt
Policy: https://example.com/hlaseni-zranitelnosti/
Nastavte doručování, záložní odpovědnou osobu a způsob evidence hlášení. Automatická odpověď může potvrdit přijetí, ale nemá prozrazovat interní infrastrukturu ani slíbit nereálnou dobu opravy.
Nasazení na běžném i sdíleném hostingu
- 01
Vytvořte veřejný adresář
V document root vytvořte
.well-known/a do něj textový souborsecurity.txt. Ověřte, že hosting adresář nezačne blokovat jen kvůli úvodní tečce. - 02
Nastavte správný MIME typ
Statický textový soubor obvykle dostane
text/plainautomaticky. Pokud ne, upravte konfiguraci hostingu nebo webserveru. - 03
Otestujte kontakt
Pošlete z externí adresy zkušební zprávu a ověřte doručení, spam filtry i odpovědnost za reakci.
- 04
Nastavte připomínku před Expires
Bez pravidelné kontroly se i původně platný soubor stane zavádějícím.
Jak ověřit odpověď a obsah
curl -i https://example.com/.well-known/security.txt
HTTP/2 200
content-type: text/plain; charset=utf-8
- Konečná URL zůstává na důvěryhodném HTTPS hostu.
Contactpoužívá platné URI a vede ke sledovanému kanálu.Expiresje budoucí datum v RFC 3339 a odpovídá plánu údržby.- Odkazy Policy, Encryption a Canonical jsou dostupné a aktuální.
Audit CoderPro kontroluje HTTPS cestu /.well-known/security.txt, úspěšnou ne-HTML odpověď a přítomnost pole Contact. Nevaliduje celý formát, datum Expires, funkčnost kontaktu ani oprávnění k testování.
Ověřené zdroje
Stručné odpovědi bez zkratek
Je security.txt povinný?
Obecně ne. RFC 9116 popisuje dobrovolný standardizovaný formát, který usnadňuje bezpečnostním výzkumníkům najít kontakt a pravidla pro oznámení zranitelnosti.
Stačí uvést běžnou e-mailovou adresu bez mailto:?
Ne. Pole Contact obsahuje URI, takže e-mail se zapisuje například jako mailto:security@example.com. Soubor musí obsahovat alespoň jedno pole Contact a právě jedno pole Expires.
Dává security.txt svolení k bezpečnostnímu testování?
Ne. Samotné zveřejnění souboru neuděluje oprávnění k testování. Rozsah, pravidla a případný safe harbor musí provozovatel popsat ve vlastní disclosure policy.