Jakiś Rekord SPF to sekwencja testów z wyraźnymi wynikami. Różnica między dwukropkiem, znakiem równości i kwalifikatorem ma znaczenie. Składniowo poprawna zmiana może również zmienić to, kto jest autoryzowany, jakie zależności DNS zostały osiągnięte lub gdzie przetwarzanie zostaje zatrzymane.
Używać RFC 7208 §4.6, RFC 7208 §5.2 I RFC 7208 §6 jako odniesienie do gramatyki i oceny. Poniższe przykłady traktuj jako syntetyczne urządzenia, a nie płyty do wklejenia do produkcji.
Oddziel mechanizmy od modyfikatorów
Mechanizm pyta, czy dane wejściowe pasują: przykłady obejmują ip4, ip6, a, mx, include, istnieje i wszystkie. Kwalifikator dołączony do mechanizmu dopasowującego określa jego wynik: + daje pass, - fiasko, ~ softfail i ? neutralny. Pod RFC 7208 §4.6.2, jeśli kwalifikator zostanie pominięty, sugeruje się +.
Modyfikatory używają znaku równości. redirect=policy.example.com deleguje ocenę, gdy żaden mechanizm nie pasuje. exp=explain.example.com określa tekst objaśniający dla niektórych wyników niepowodzenia. Nie są to dodatkowe mechanizmy dopasowujące. Rozpoznane modyfikatory mają swoje własne zasady; składniowo prawidłowe nierozpoznane modyfikatory są ignorowane, a nierozpoznany mechanizm jest błędem.
Rekord zaczyna się od v=spf1 i jest publikowany jako DNS Rekord TXT na ocenianą tożsamość. Dwa oddzielne rekordy SPF tego samego właściciela nie umożliwiają łączenia nadawców; Powraca wybór rekordu SPF permerror pod RFC 7208 §4.5. Wiele ciągów znaków w cudzysłowie w jednym rekordzie TXT stanowi inną reprezentację i są łączone bez wstawiania spacji RFC 7208 §3.3.
Prześledź pełny przykład
Załóż prawidłową składnię, jeden rekord SPF dla każdej nazwy i pomyślne pobranie DNS . Załóżmy, że taka jest polityka v=spf1 ip4:192.0.2.20 include:service.example.net -all. Załączona polisa jest v=spf1 ip4:198.51.100.10 -all.
W przypadku 192.0.2.20 pierwszy mechanizm dopasowuje i zwraca wynik pozytywny. Uwzględnienie nie jest potrzebne w przypadku tej ścieżki oceny. W przypadku 198.51.100.10 pierwszy mechanizm nie jest zgodny, dołączona zasada zwraca pass, a zewnętrzne dołączenie pasuje do jego domyślnego + kwalifikatora. W przypadku 203.0.113.7 uwzględnione zwroty zasad nie powiodą się; to sprawia, że dołączenie nie jest zgodne, a zewnętrzne -all kończy się niepowodzeniem.
Ten ślad wyjaśnia, dlaczego dołączenie nie jest podstawieniem tekstu. Dołączone -all nie odrzuca natychmiast wszystkich adresów, które nie spełniają zasad usługi. Zasada nadrzędna zostaje wznowiona po niepasującym wyniku uwzględnienia.
Dowiedz się, gdzie kończy się przetwarzanie
Mechanizm dopasowujący kończy ocenę zwykłego mechanizmu. Błąd w osiągniętym terminie może również zakończyć ocenę. Zmiana kolejności terminów może zatem zmienić wynik lub zależności, o które odbiorca musi zapytać.
Mechanizm all zawsze pasuje, więc warunki następujące po nim nie mogą zapewniać dodatkowej autoryzacji. A modyfikator przekierowania jest ignorowany, jeśli w dowolnym miejscu rekordu występuje mechanizm all. Pismo -all przekierowanie= policy.example.com nie powoduje awaryjnego powrotu.
Pod RFC 7208 §4.7, jeśli żaden mechanizm nie pasuje i nie ma przekierowania, domyślny wynik jest neutralny. Wyjaśnij zamierzone zakończenie, aby inny administrator nie musiał wnioskować, czy pominięcie było zamierzone.
Sprawdź ścieżkę i cały rekord
Przed opublikowaniem sprawdź całą składnię, a nie tylko część, która ma pasować do znanego adresu IP. Nieważnej polityki nie można zabezpieczyć poprzez założenie korzystnego wczesnego dopasowania. Następnie oceń autoryzowane dane wejściowe IPv4 i IPv6 , nieautoryzowane dane wejściowe i zależności, które kończą się niepowodzeniem lub nie zwracają żadnego rekordu SPF .
Główne oceniane limity terminów DNS obejmują a, mx, ptr, terminy istniejące i przekierowania, w tym rekursję. Nie jest to liczba cytowanych fragmentów TXT . Zachowaj ślad pokazujący zarówno wybrany wynik, jak i osiągnięte terminy DNS . Budżet na zmiany zależności od dostawców zamiast projektowania zasad bez rezerwy.
Wprowadź zmianę, którą można sprawdzić
Zapisz proponowany zapis obok bieżącego rekordu i wyjaśnij zamierzoną różnicę w uprawnieniach w potocznym języku. Zachowaj poprzednią wartość i TTL, sprawdź wynik w autorytatywnym DNS i za pomocą rekursywnego mechanizmu rozpoznawania nazw, a następnie przetestuj otrzymane wiadomości przez przedstawiciela.
Warunkiem akceptacji nie jest po prostu to, że parser akceptuje ciąg znaków. Zamierzeni nadawcy powinni uchodzić za prawidłową tożsamość, niezamierzeni nadawcy nie powinni uzyskiwać pozwolenia i są wymagani DMARC wyrównanie powinien pozostać nienaruszony.
Praktyczne dania na wynos
Przeczytaj każdy SPF termin według typu, kwalifikatora i pozycji. Przejrzysty ślad oceny sprawia, że przegląd składni jest przeglądem uprawnień, a nie ćwiczeniem interpunkcyjnym.
Zadbaj o powtarzalność decyzji
W przypadku dwóch rekordów adres lokalny przechodzi przed dołączeniem, adres usługi przechodzi przez przebieg podrzędny, a adres niepowiązany osiąga ostateczny błąd rodzica. Jeśli zamiast tego dziecko nie ma rekordu SPF , osiągnięte dołączenie zwraca permerror . Trzymaj ten przypadek błędu oddzielnie od przypadku niepowodzenia/niedopasowania podrzędnego. Są to wyniki analityczne, a nie wykonany test parsera lub weryfikatora.