Rekord SPF
ważność wysokamierzonysposób dns_integrity
Czy domena deklaruje w DNS, które serwery mogą wysyłać jej pocztę (TXT v=spf1). Brak oznacza, że każdy może podszyć się pod adres klienta.
Sprawdzane tylko wtedy, gdy domena ma rekord MX — domena bez poczty nie potrzebuje SPF.
WIKI
artykuł z 16.09.2026 · źródeł 8Rekord SPF to parametr monitoringu stron internetowych, który sprawdza, czy domena obsługująca pocztę publikuje w DNS rekord SPF, czyli deklarację, które serwery mogą wysyłać pocztę w jej imieniu. Pomiar dotyczy domen z rekordem MX i kończy się jednym z trzech wyników: rekord jest, rekordu nie ma albo DNS nie dał rozstrzygającej odpowiedzi. SPF pozwala właścicielowi domeny wskazać hosty uprawnione do używania jej nazwy w sesji SMTP, a serwerowi odbiorcy — sprawdzić to uprawnienie [1].
Jak działa
Rekord SPF musi być opublikowany jako rekord DNS typu TXT i zaczyna się od oznaczenia wersji v=spf1 [1]. Serwer odbiorcy sprawdza tożsamość z polecenia MAIL FROM, jeśli sprawdzenie nazwy z HELO nie zostało wykonane albo nie dało rozstrzygnięcia; norma zaleca sprawdzać obie [1].
Rekord składa się z mechanizmów i modyfikatorów. Mechanizmy podstawowe to all i include, a mechanizmy wskazujące nadawców to a, mx, ptr, ip4, ip6 i exists; modyfikatory to redirect i exp [1]. Mechanizmu ptr nie należy publikować, bo po latach wdrożeń uznano go za zbędny i zawodny [1]. Każdy mechanizm może mieć kwalifikator: + daje wynik pass, - fail, ~ softfail, a ? neutral; brak kwalifikatora oznacza + [1]. Odbiorca przechodzi mechanizmy od lewej do prawej i kończy przy pierwszym dopasowaniu [3].
Ewaluacja kończy się jednym z siedmiu wyników. Wynik none oznacza, że nie pobrano żadnego rekordu SPF; neutral — że domena świadomie nie przesądza o uprawnieniu; pass — że klient jest uprawniony; fail — że nie jest; softfail — że prawdopodobnie nie jest [1]. Temperror to przejściowy, zwykle DNS-owy błąd weryfikatora, a permerror — rekord, którego nie da się poprawnie zinterpretować [1]. Gdy domena ma więcej niż jeden rekord SPF, wynik to permerror [1].
Mechanizmy wymagające zapytań DNS podlegają limitowi: implementacja musi ograniczyć ich liczbę do 10 i po przekroczeniu zwrócić permerror [1]. Do limitu liczą się include, a, mx, exists i redirect, a zagnieżdżone include dodają kolejne zapytania; ip4, ip6 i all się nie liczą [3]. Osobno norma zaleca ograniczyć do dwóch zapytania puste (ang. void lookups), czyli takie, które nie zwracają rekordu [1].
Standardy i specyfikacje
- RFC 7208 (kwiecień 2014, zastępuje RFC 4408) definiuje SPF: składnię rekordu, mechanizmy, kwalifikatory, wyniki i limity zapytań [1].
- RFC 7489 opisuje DMARC. SPF uwierzytelnia domenę z MAIL FROM albo HELO, czyli adresy z warstwy SMTP, a DMARC dotyczy pola From, które klienci poczty pokazują użytkownikowi [2].
- RFC 7505 wprowadza pusty rekord MX dla domen, które nie przyjmują poczty, i przypomina, że domeny niewysyłające poczty mogą opublikować politykę SPF
-all[7]. - Google od 1 lutego 2024 r. wymaga od wszystkich nadawców do kont Gmail SPF lub DKIM, a od wysyłających ponad 5000 wiadomości dziennie — SPF, DKIM i DMARC oraz zgodności domeny z pola From z domeną SPF albo DKIM [4].
- Yahoo od lutego 2024 r. wymaga od wszystkich nadawców co najmniej SPF lub DKIM, a od nadawców masowych obu mechanizmów i polityki DMARC co najmniej
p=none[5]. - Ustawa o zwalczaniu nadużyć w komunikacji elektronicznej wymusza na dostawcach poczty dla co najmniej 500 000 użytkowników albo dla podmiotu publicznego stosowanie SPF, DMARC i DKIM [8].
Zagrożenia i skutki
Podszywanie się pod domenę. Protokół SMTP powstał, gdy kluczowe były stabilność i prostota, a o bezpieczeństwie informacji mało kto myślał [6]. Bez rekordu SPF wynik sprawdzenia to none [1]: odbiorca nie ma od właściciela domeny żadnej deklaracji, z którą mógłby porównać adres serwera nadawcy.
SPF nie chroni widocznego nadawcy. SPF samodzielnie nie sprawdza pola From wyświetlanego w programach pocztowych, a jedynie adres z koperty SMTP, więc nie chroni przed podszyciem się pod wyświetlany adres [6]. Tę lukę zamyka dopiero DMARC, wymagający wyrównania domeny From z domeną uwierzytelnioną [2].
Miękka polityka. Softfail jest słabym stwierdzeniem, że host prawdopodobnie nie jest uprawniony [1], choć wiele serwerów traktuje -all i ~all tak samo [6]. Według dokumentacji Microsoft polityka DMARC jest w praktyce pomijana dla porażek SPF z ~all, gdy wiadomość nie ma podpisu DKIM; wartość ?all służy do testów [3].
Błędy konfiguracji. Drugi rekord SPF, przekroczony limit zapytań albo include wskazujący domenę bez rekordu SPF dają permerror, a wiadomość może zostać odrzucona [3]. Rekord domeny nie obejmuje subdomen — każda wysyłająca subdomena potrzebuje własnego [3].
Doręczalność. Poczta niespełniająca wymagań Google może nie zostać doręczona albo trafić do spamu [4], a Yahoo zapowiada negatywny wpływ na doręczanie do swoich domen [5].
Przykłady
| Rekord w DNS | Wynik dla serwera spoza listy | Uwagi |
|---|---|---|
brak rekordu v=spf1 | none [1] | odbiorca nie ma deklaracji domeny |
v=spf1 include:… -all | fail [1] | odrzucenie w sesji SMTP kodem 550 [1] |
v=spf1 include:… ~all | softfail [1] | często traktowany jak fail [6] |
v=spf1 include:… ?all | neutral [1] | wartość do testów [3] |
v=spf1 +all | pass dla każdego [1] | rekord jest, ale nic nie ogranicza |
dwa rekordy v=spf1 | permerror [1] | jeden rekord na domenę [3] |
| ponad 10 zapytań DNS | permerror [1] | zagnieżdżone include [3] |
v=spf1 -all w domenie bez poczty | fail dla każdego [3] | domena nie wysyła poczty [7] |
- [1] RFC 7208 — Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1 · IETF
- [2] RFC 7489 — Domain-based Message Authentication, Reporting, and Conformance (DMARC) · IETF
- [3] Set up SPF to identify valid email sources for your Microsoft 365 domain · Microsoft Learn
- [4] Email sender guidelines · Google Workspace Admin Help
- [5] Sender Best Practices · Yahoo
- [6] Mechanizmy weryfikacji nadawcy wiadomości · CERT Polska
- [7] RFC 7505 — A "Null MX" No Service Resource Record for Domains That Accept No Mail · IETF
- [8] Ustawa o zwalczaniu nadużyć w komunikacji elektronicznej · CERT Polska
STATS
wyniki z systemu · tylko liczby zbiorczeTen parametr nie zapisuje odczytu per strona — przebieg zostawia tylko ustalenia, więc liczby sprawdzonych stron i wyników „ok” system nie ma. Pojawią się po wdrożeniu zapisu przebiegów per strona per parametr.
Ten parametr nie otworzył jeszcze żadnego ustalenia w bazie LAB247. Pusto nie znaczy „czysto” — znaczy, że nic nie przekroczyło reguły.
- Przebiegów
- 33sposób dns_integrity
- W 30 dni
- 33przebiegów
- Ostatni
- 19.09.2026start przebiegu
- Stron w przebiegach
- —33 przebiegów bez liczby stron
CARD
karta z kodu CREATO_PING, odczyt 16.09.2026| Obszar i ważność | Bezpieczeństwo · wysoka (B24) |
|---|---|
| Workflow i częstotliwość | creato_ping_security_v2 · P3 działa na LAB247cron co 24 h, T1–T3; T4 raz po anomalii · Dokładny skan. dns_integrity porównuje NS, MX, SPF i DMARC z wzorcem z poprzedniego przebiegu. |
| Sonda i helper | sposób dns_integrity · CREATO_PING/helpers/dns_integrity_check.py |
| Testy |
|
| Typ wyniku | 0 albo 1 ustalenie dns_spf_missing |
| Jednostka | brak — wynik jakościowy (obecność rekordu TXT v=spf1); w dowodzie lista rekordów MX |
| Próg i reguła | Timeout 5,0 s na zapytanie. Reguła: MX niepusty i brak TXT v=spf1 = dns_spf_missing. NXDOMAIN, błąd i timeout zapytania TXT dają pustą listę, czyli także „brak rekordu”. |
| Gdzie leżą pokrętła | CREATO_PING/helpers/dns_integrity_check.py → _LIFETIME, _pick, missing_findingsCREATO_PING/helpers/security_runner.py → _TASK_SEVERITIES (dalej idą tylko urgent i high)CREATO_PING/config/incident_policy.toml → [finding] dns_spf_missing |
| Retencja odczytów | Żadna dla ustalenia. Na serwerze monitoringu plik wzorca DNS trzyma ostatni odczyt SPF per domena, nadpisywany co przebieg. Replay niemożliwy. |
| Znane rozbieżności |
|
| Karta przepisana z | CREATO_PING/helpers/dns_integrity_check.py · CREATO_PING/helpers/security_runner.py · CREATO_PING/config/incident_policy.toml · CREATO_PING/workflows/_prod/creato_ping_security_v2.json · odczyt 16.09.2026 |
Helper zgłasza powagę niską, więc filtr przebiegu odrzuca ustalenie, zanim dotrze do zapisu. Polityka i tak mówi: niska, bez skutku, gate=false. Przebieg produkcyjny idzie z --no-stats, więc nie zostaje nawet licznik. Utwardzenie, nie incydent.
| Ustalenie | Powaga | Pewność | Skutek | Subtask / alarm | Co zrobić |
|---|---|---|---|---|---|
| Brak rekordu SPFdns_spf_missing | Niskie | Ewidentne | bez wpływu | nie / nie | Dodaj rekord TXT v=spf1 z serwerami poczty klienta i kończące -all. |
LOOP
bez pętliTrafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.
Ten parametr nie przeszedł jeszcze żadnej pętli. Kolejność po pierwszych pięciu grupach ustali miara trafności.