security.txt (RFC 9116): wymagane pola i przykład

Skonfiguruj security.txt w /.well-known/security.txt: pola Contact i Expires, przykład do skopiowania oraz związek z dokumentacją techniczną CRA.

Zespół CRA Evidence Opublikowano 6 lutego 2026 Zaktualizowano 6 kwietnia 2026
security.txt (RFC 9116): wymagane pola i przykład
W tym artykule

CRA wymaga publicznie dostępnego punktu kontaktowego do zgłaszania podatności. Standardem jest RFC 9116, zwykły plik tekstowy o nazwie security.txt, hostowany pod /.well-known/security.txt. Dwa wymagane pola, kilka zalecanych i około 10 minut pracy.

Ten przewodnik omawia pola, hosting, typowe błędy i to, co trzeba uwzględnić w dokumentacji technicznej.

Podsumowanie

  • security.txt to standaryzowany plik (RFC 9116) informujący badaczy, jak zgłaszać podatności
  • Umieść go pod /.well-known/security.txt na swojej obecności w sieci
  • Minimalne wymagane pola: Contact, Expires
  • Zalecane: Dodaj również Preferred-Languages, Policy, Canonical
  • Dla produktów bez interfejsów webowych, dołącz URL w dokumentacji

Czym Jest security.txt?

security.txt to standard RFC (RFC 9116), który zapewnia czytelny maszynowo i przez człowieka sposób publikowania informacji kontaktowych dotyczących bezpieczeństwa.

CRA wymaga od producentów opublikowania kontaktu do zgłaszania podatności. security.txt to standardowy sposób na spełnienie tego wymogu. Automatyczne narzędzia skanujące i badacze bezpieczeństwa domyślnie sprawdzają jego obecność, a jego istnienie jest dla regulatorów konkretnym sygnałem, że wdrożono właściwe kanały ujawniania.

Minimalny security.txt

Oto najprostszy zgodny plik:

Contact: mailto:security@yourcompany.com
Expires: 2027-12-31T23:59:59.000Z

To wszystko. Dwie linie. Technicznie zgodny.

Ale zróbmy to lepiej.

Zalecany security.txt

Kompletny security.txt:

Contact: mailto:security@yourcompany.com
Contact: https://yourcompany.com/security/report
Expires: 2027-01-01T00:00:00.000Z
Encryption: https://yourcompany.com/.well-known/pgp-key.txt
Preferred-Languages: en, de, fr
Canonical: https://yourcompany.com/.well-known/security.txt
Policy: https://yourcompany.com/security/disclosure-policy
Hiring: https://yourcompany.com/careers/security
Acknowledgments: https://yourcompany.com/security/thanks

Wyjaśnienie Pole po Polu

Contact (Wymagane)

Jak badacze powinni się z tobą kontaktować.

Contact: mailto:security@yourcompany.com
Contact: https://yourcompany.com/security/report

Używaj aliasu zespołu, nie osobistego emaila. Dołącz zarówno adres email, jak i formularz webowy, jeśli go masz. Wiele linii Contact jest dozwolone, a formularz zapewnia strukturalny odbiór zgłoszeń.

Expires (Wymagane)

Expires: 2027-01-01T00:00:00.000Z

Ustaw 6-12 miesięcy w przyszłość, w formacie ISO 8601 ze strefą czasową. Dodaj przypomnienie kalendarzowe przed datą wygaśnięcia. Nieaktualny plik sygnalizuje badaczom, że nie jest utrzymywany.

Encryption (Zalecane)

Encryption: https://yourcompany.com/.well-known/pgp-key.txt

Używaj klucza zespołu, nie indywidualnego, i przechowuj klucz prywatny w HSM, jeśli to możliwe. Dołącz odcisk klucza w komentarzach, żeby badacze mogli go zweryfikować niezależnie.

Preferred-Languages (Zalecane)

Preferred-Languages: en, de, fr

Wymieniaj tylko języki, w których twój zespół bezpieczeństwa faktycznie może odpowiadać. Sortuj według preferencji. Jeśli podasz język, którego nikt w zespole nie zna, będziesz otrzymywać zgłoszenia, których nie dasz rady obsłużyć.

Canonical (Zalecane)

Canonical: https://yourcompany.com/.well-known/security.txt

Zapobiega podszywaniu i wyjaśnia, czy plik jest lustrzany.

Policy (Zalecane)

Policy: https://yourcompany.com/security/disclosure-policy

Upewnij się, że strona istnieje i ładuje się bez uwierzytelniania. Martwy link Policy podczas przeglądu bezpieczeństwa to nie jest dobre wrażenie.

Acknowledgments (Opcjonalne)

Acknowledgments: https://yourcompany.com/security/thanks

Badacze, którzy znajdą błędy, są często dobrymi kandydatami do twojego zespołu bezpieczeństwa. Uznanie zachęca do kolejnych zgłoszeń. Większość badaczy priorytetyzuje organizacje, które doceniają ich pracę.

Hiring (Opcjonalne)

Hiring: https://yourcompany.com/careers/security

Warto dołączyć, jeśli masz otwarte stanowiska w bezpieczeństwie. Badacze aktywnie szukający pracy sprawdzają te linki.

Konfiguracja Krok po Kroku

Krok 1: Utwórz Plik

cat > security.txt << 'EOF'
Contact: mailto:security@yourcompany.com
Contact: https://yourcompany.com/security/report
Expires: 2027-01-15T00:00:00.000Z
Preferred-Languages: en
Canonical: https://yourcompany.com/.well-known/security.txt
Policy: https://yourcompany.com/security/policy
EOF

Krok 2: Wybierz Lokalizację Hostingu

https://yourcompany.com/.well-known/security.txt
https://192.168.1.1/.well-known/security.txt

Krok 3: Skonfiguruj Serwer Web

Nginx:

location /.well-known/security.txt {
    alias /var/www/security.txt;
    default_type text/plain;
}

Apache:

Alias /.well-known/security.txt /var/www/security.txt
<Files "security.txt">
    ForceType text/plain
</Files>

Express.js:

app.get('/.well-known/security.txt', (req, res) => {
    res.type('text/plain');
    res.sendFile(__dirname + '/security.txt');
});

Hosting statyczny: Umieść plik w katalogu .well-known.

Krok 4: Zweryfikuj

curl https://yourcompany.com/.well-known/security.txt

Walidator online: https://securitytxt.org/

Krok 5: Podpisz (Opcjonalne, ale Zalecane)

gpg --clearsign security.txt
mv security.txt.asc security.txt

Dla Produktów Bez Interfejsów Webowych

Urządzenia Wbudowane

Opcja 1: Hostuj pod http://device-ip/.well-known/security.txt Opcja 2: Dołącz URL w dokumentacji produktu, odwołaj się do firmowego security.txt.

Oprogramowanie Desktopowe

  • Dołącz kontakt bezpieczeństwa w Pomoc > O programie
  • Dodaj do README/dokumentacji

Aplikacje Mobilne

  • Dołącz w Ustawienia > O aplikacji > Bezpieczeństwo
  • Dodaj do opisu w sklepie z aplikacjami

Odniesienie w Dokumentacji

## Security Vulnerability Reporting
- Email: security@yourcompany.com
- Web: https://yourcompany.com/security/report
- Policy: https://yourcompany.com/security/policy
Our security.txt file: https://yourcompany.com/.well-known/security.txt

Częste Błędy

Wygasły Plik

Expires: 2024-01-01T00:00:00.000Z  # EXPIRED!

Naprawa: Ustaw datę w przyszłości. Dodaj przypomnienie kalendarzowe.

Zła Lokalizacja

/security.txt           # Wrong
/.well-known/security.txt  # Correct

Nieprawidłowy Format

Naprawa: Używaj dat ISO 8601, URI mailto: lub https:.

Martwe Linki

Naprawa: Zweryfikuj, że wszystkie linki działają. Sprawdzaj po wdrożeniach.

Osobisty Email

Contact: mailto:john.smith@yourcompany.com  # Bad

Naprawa: Używaj aliasu zespołu.

Brak HTTPS

Naprawa: Zawsze używaj HTTPS dla URL związanych z bezpieczeństwem.

Lista Kontrolna Walidacji

SECURITY.TXT VALIDATION CHECKLIST

REQUIRED FIELDS:
[ ] Contact field present (mailto: or https:)
[ ] Expires field present (future date, ISO 8601)

RECOMMENDED FIELDS:
[ ] Preferred-Languages included
[ ] Canonical URL matches actual location
[ ] Policy link works and points to CVD policy

HOSTING:
[ ] File at /.well-known/security.txt
[ ] HTTPS accessible
[ ] Content-Type: text/plain

VERIFICATION:
[ ] curl test successful
[ ] Online validator passes
[ ] Links all resolve (no 404s)

MAINTENANCE:
[ ] Calendar reminder set for before Expires date
[ ] Update process documented

Harmonogram Utrzymania

Zadanie Częstotliwość
Sprawdź datę wygaśnięcia Miesięcznie
Zweryfikuj, że linki działają Miesięcznie
Aktualizuj klucz PGP (jeśli wygasa) W razie potrzeby
Przejrzyj adresy kontaktowe Kwartalnie
Pełna kontrola walidacji Przed wygaśnięciem

Co Umieścić w Dokumentacji Technicznej

CRA wymaga od producentów prowadzenia dokumentacji technicznej (Annex VII) opisującej proces obsługi podatności. Plik security.txt i polityka CVD, do której odsyła, są bezpośrednimi elementami tej dokumentacji.

Dokumentacja techniczna powinna zawierać:

  • URL pliku security.txt i jakie metody kontaktu udostępnia
  • URL polityki ujawniania, do której odsyła
  • SLA dotyczące odpowiedzi, do których zobowiązałeś się w tej polityce

Regulatorzy przeglądający dokumentację techniczną szukają dowodów na to, że działa sprawny proces przyjmowania zgłoszeń o podatnościach. Aktywny, niewyekspirowały security.txt z działającym linkiem Policy to konkretny sygnał. Wygasły plik lub martwe linki działają na twoją niekorzyść.

Vulnerability Reporting Contact Points:
- security.txt: https://company.com/.well-known/security.txt
- Email: security@company.com
- Web Form: https://company.com/security/report
- Policy: https://company.com/security/policy

Kompletny Przykład

Contact: https://acmetech.eu/security/report
Contact: mailto:security@acmetech.eu
Expires: 2027-06-01T00:00:00.000Z
Preferred-Languages: en, de, es
Canonical: https://acmetech.eu/.well-known/security.txt
Policy: https://acmetech.eu/security/disclosure-policy
Acknowledgments: https://acmetech.eu/security/hall-of-fame
Hiring: https://acmetech.eu/careers#security

Wskazówka: Konfiguracja security.txt zajmuje 10 minut i spełnia kluczowy wymóg CRA dotyczący opublikowanego kontaktu do zgłaszania podatności. Zrób to dziś.

Ważne: Twój security.txt musi zawierać metodę kontaktu, preferowany język i datę wygaśnięcia. Powinien znajdować się pod /.well-known/security.txt w twojej domenie.

Często zadawane pytania

Które pola są wymagane w pliku security.txt?

RFC 9116 wymaga obowiązkowo tylko dwóch pól: Contact oraz Expires. Wszystkie pozostałe, w tym Canonical, Encryption, Preferred-Languages, Policy i Acknowledgments, są zalecane lub opcjonalne. Plik z jedną linią Contact i przyszłą datą Expires jest poprawny, ale to powiązanie go z działającym procesem obsługi podatności jest tym, czego faktycznie szukają organy nadzoru.

Jaki jest poprawny format pola Expires?

Expires przyjmuje jeden znacznik czasu w formacie ISO 8601 ze strefą czasową, na przykład 2027-01-01T00:00:00.000Z. Data musi być w przyszłości, a RFC 9116 zaleca ustawienie jej krócej niż rok naprzód, żeby plik nie wyglądał na porzucony. Dopuszczalna jest tylko jedna linia Expires, a data w przeszłości unieważnia cały plik dla większości parserów.

Do czego służy pole Canonical i czy jest wymagane?

Canonical jest opcjonalne. Wskazuje autorytatywny adres URI pliku, dzięki czemu badacz może potwierdzić, że czyta prawdziwy security.txt, a nie kopię umieszczoną gdzie indziej. Ustaw je dokładnie na lokalizację https://twojadomena/.well-known/security.txt i pozostaw na HTTPS, żeby link nie mógł zostać podmieniony w trakcie przesyłu.

Jak zapisuje się pole Acknowledgments w RFC 9116?

RFC 9116 zapisuje to pole jako Acknowledgments, w angielskiej formie amerykańskiej, bez „e" przed „-ments". To pole opcjonalne, które prowadzi do strony z podziękowaniami dla badaczy zgłaszających problemy, często do tablicy zasłużonych dla bezpieczeństwa. Zachęca do odpowiedzialnego ujawniania, ale nie ma żadnego wpływu na to, czy plik jest poprawny.

Gdzie powinien znajdować się plik security.txt?

Plik musi leżeć pod /.well-known/security.txt, serwowany przez HTTPS jako text/plain, bez uwierzytelniania. Skaner zgłaszający „security.txt not configured" oznacza, że plik nie istnieje, jest schowany za logowaniem albo leży w złym miejscu, na przykład jako /security.txt w katalogu głównym witryny. Dla produktu bez własnej witryny odwołaj się do pliku firmowego z dokumentacji produktu.

Czy CRA naprawdę wymaga pliku security.txt?

CRA nie wymienia security.txt z nazwy, ale wymaga kontaktu, który za nim stoi. Załącznik I część II pkt 6 zobowiązuje producentów do podania adresu kontaktowego do zgłaszania podatności, a Artykuł 13 ust. 17 wymaga jednego punktu kontaktowego dla użytkowników. security.txt to standardowy sposób opublikowania tego kontaktu, a dokumentacja techniczna ma zawierać dowód, że kontakt istnieje (Załącznik VII pkt 2 lit. b)). Zobacz skoordynowane ujawnianie podatności, żeby zrozumieć, jak wpisuje się to w szerszy obowiązek.

Jak Pomaga CRA Evidence

security.txt to jeden element szerszego obrazu obsługi podatności. Trudniejsza część to pełny proces stojący za tym plikiem: polityka, SLA dla triażu, zgłaszanie do ENISA i dokumentowanie wszystkiego w dokumentacji technicznej. Do tego służy CRA Evidence.

Zacznij na craevidence.com.


Ten artykuł służy wyłącznie celom informacyjnym i nie stanowi porady prawnej. W celu uzyskania konkretnych wskazówek dotyczących zgodności, skonsultuj się z wykwalifikowanym prawnikiem.

CRA Zarządzanie podatnościami Standardy Bezpieczeństwa
Share

Czy CRA dotyczy Twojego produktu?

Odpowiedz na 6 prostych pytań, aby dowiedzieć się, czy Twój produkt podlega pod Cyber Resilience Act UE. Uzyskaj wynik w mniej niż 2 minuty.

Gotowy na osiągnięcie zgodności z CRA?

Zacznij zarządzać swoimi SBOM-ami i dokumentacją zgodności z CRA Evidence.

Szczegółowe omówienie zagadnień CRA

Stale aktualizowane przewodniki po wymaganiach, procesach i rolach określonych przez akt o cyberodporności (CRA).