Link do rezygnacji z subskrypcji w treści wiadomości, a List-Unsubscribe nagłówek i mechanizm jednego kliknięcia są powiązanymi, ale różnymi funkcjami. Diagnostyka powinna określić, który mechanizm faktycznie wyemitował nadawca i czy obecne są wymagane podpisane nagłówki. Samo zobaczenie słowa „anuluj subskrypcję” w źródle nie gwarantuje działającej implementacji obsługiwanej jednym kliknięciem.
Przeczytaj oba pola razem
RFC 2369 definiuje List-Unsubscribe jako pole poleceń listy zawierające adresy URL umożliwiające opuszczenie listy. Może opisywać metody takie jak mailto lub HTTPS. RFC 8058 dodaje opcję List-Unsubscribe-Post dla mechanizmu jednego kliknięcia. Ten ostatni używa wartości List-Unsubscribe = One-Click z identyfikatorem URI HTTPS w List-Unsubscribe . Sama opcja mailto nie jest mechanizmem HTTPS zgodnym RFC 8058 . RFC 2369 sekcja 3.2, RFC 8058 sekcja 3.
Odbiornik jednym kliknięciem wysyła komunikat HTTPS POST z określoną wartością anulowania subskrypcji. Rutynowy GET sprawdzający adres URL nie może sam wykonywać akcji anulowania subskrypcji RFC 8058 . To rozróżnienie ma znaczenie, ponieważ skanery linków mogą pobierać adresy URL bez zamiaru opuszczania listy przez osobę. Nie zamieniaj przeglądu diagnostycznego w nieautoryzowaną zmianę abonamentu.
Sprawdź wymagania dotyczące podpisu
RFC 8058 wymaga prawidłowego Podpis DKIM obejmujące zarówno List-Unsubscribe , jak i List-Unsubscribe-Post . Znalezienie dwóch nazw pól na liście h= podpisu jest użyteczną kontrolą strukturalną, ale nie dowodzi, że podpis weryfikuje.
Zachowaj oryginalną podpisaną wiadomość do celów faktycznej weryfikacji. Wiele podpisów i powtarzające się pola nagłówka wymagają starannej selekcji; naiwne wyszukiwanie podciągów może pomylić niepowiązany podpis z tym, który spełnia wymagania. Zachowaj zakres podpisywania, weryfikację kryptograficzną i zachowanie punktu końcowego jako osobne kontrole.
Użyj kontrolowanego przykładu
Rozważ hipotetyczną wiadomość z dwoma poprawnymi wartościami nagłówka. Jego jedyny ważny podpis obejmuje pola Od i Temat, ale nie obejmuje pól rezygnacji z subskrypcji. Drugi podpis wymienia oba pola, ale nie przechodzi weryfikacji. Ta wiadomość zawiera zarówno a DKIM pass i widoczne pokrycie gdzieś w źródle, ale żaden podpis nie spełnia połączonych wymagań RFC 8058 .
Następnym krokiem jest identyfikacja lub utworzenie, poprzez zatwierdzoną zmianę nadawcy, podpisu, który zarówno weryfikuje, jak i obejmuje oba pola. W przypadku tego przykładu nauczania nie zweryfikowano żadnego podpisu ani nie zmieniono subskrypcji. Nawet później zweryfikowany podpis obejmujący pozostawiłby bez przetestowania zachowanie punktu końcowego HTTPS i tłumienie następnej wysyłki.
Aby uzyskać autoryzowany kompleksowy test, skorzystaj z dedykowanej subskrypcji testowej i obsługiwanego środowiska testowego nadawcy. Zweryfikuj prawidłowy podpis, wyślij zamierzony POST i potwierdź stan subskrypcji testowej za pomocą własnego dowodu usługi. RFC 8058 zabrania przekierowań HTTPS i wyklucza pliki cookie, autoryzację HTTP i inny kontekst żądań z testu POST. Przed wysłaniem odbiorca musi uzyskać zgodę użytkownika. Zamiast klikać, zarejestruj wszelkie wymagania dotyczące przekierowania lub logowania jako defekt; punkt końcowy musi zakończyć subskrypcję bez dodatkowej interakcji.
Chroń identyfikatory abonentów
Adresy URL rezygnacji z subskrypcji często zawierają token specyficzny dla odbiorcy. Traktuj pełny adres URL jako potencjalnie mogący zmienić subskrypcję tej osoby. Zredaguj lub zastąp token w ogólnej kopii diagnostycznej, zachowaj nienaruszoną wiadomość dla prywatności i nie wklejaj aktywnego adresu URL do publicznych zgłoszeń ani automatycznych modułów pobierania.
Zamknij wyraźną listą kontrolną: obecne pola, poprawna składnia, obejmujący zweryfikowany podpis i autoryzowany test punktu końcowego zakończony lub niewykonany. Uprawnienia dostawcy do wysyłania wiadomości zbiorczych i wyświetlanie interfejsu rezygnacji z subskrypcji to osobne pytania dotyczące usługi. Sprawdzenie nagłówka na poziomie standardów nie gwarantuje, że jakikolwiek dostawca skrzynek pocztowych wyświetli określony przycisk.
Zgłaszaj każdą warstwę niezależnie
Jeśli nagłówki są obecne, ale weryfikacja podpisu jest niedostępna, zgłoś jedynie wynik strukturalny. Jeśli weryfikacja zakończy się pomyślnie, ale nie przeprowadzono autoryzowanego testu punktu końcowego, pozostaw zachowanie bez testowania. Zapisz dokładną próbkę końcową i dowody potrzebne do wykonania następnej warstwy.