Een afmeldlink in de berichttekst, a List-Unsubscribe header en het één-klik-mechanisme zijn gerelateerd, maar verschillende functies. Een diagnose moet identificeren welk mechanisme de afzender daadwerkelijk heeft uitgezonden en of de vereiste ondertekende headers aanwezig zijn. Alleen al het zien van het woord 'uitschrijven' in de bron zorgt niet voor een werkende implementatie met één klik.
Lees de twee velden samen
RFC 2369 definieert List-Unsubscribe als een lijstopdrachtveld met URL's voor het verlaten van een lijst. Het kan methoden beschrijven zoals mailto of HTTPS. RFC 8058 voegt List-Unsubscribe-Post toe voor het één-klik-mechanisme. Deze laatste gebruikt de waarde List-Unsubscribe =One-Click, met een HTTPS-URI in List-Unsubscribe . Een mailto-optie alleen is niet het RFC 8058 HTTPS-mechanisme. RFC 2369 sectie 3.2, RFC 8058 sectie 3.
De ontvanger met één klik verzendt een HTTPS POST met de opgegeven afmeldingswaarde. Een routinematige GET om een URL te inspecteren mag niet zelf de RFC 8058 afmeldingsactie uitvoeren. Dit onderscheid is van belang omdat linkscanners URL's kunnen ophalen zonder dat iemand de intentie heeft een lijst achter te laten. Maak van diagnostische inspectie geen ongeoorloofde abonnementswijziging.
Controleer de ondertekeningsvereiste
RFC 8058 vereist een geldig DKIM -handtekening die zowel List-Unsubscribe als List-Unsubscribe-Post omvat. Het vinden van de twee veldnamen in de h=-lijst van een handtekening is een nuttige structurele controle, maar bewijst niet dat de handtekening verifieert.
Bewaar het origineel ondertekende bericht voor een daadwerkelijke verificatie. Meerdere handtekeningen en herhaalde koptekstvelden vereisen een zorgvuldige selectie; een naïeve zoekopdracht op subtekenreeksen kan een niet-gerelateerde handtekening verwarren met de handtekening die aan de vereiste voldoet. Houd de ondertekeningsdekking, cryptografische validatie en eindpuntgedrag als afzonderlijke controles.
Gebruik een gecontroleerd voorbeeld
Beschouw een hypothetisch bericht met de juiste twee headerwaarden. De enige geldige handtekening omvat Van en Onderwerp, maar niet de velden voor het afmelden. Een tweede handtekening vermeldt beide velden, maar mislukt de verificatie. Dit bericht heeft zowel een DKIM pass en schijnbare dekking ergens in de bron, maar geen van beide handtekeningen voldoet aan de gecombineerde RFC 8058 vereiste.
De volgende stap is het identificeren of creëren, via een goedgekeurde afzenderwijziging, van een handtekening die de twee velden zowel verifieert als afdekt. Voor dit lesvoorbeeld is geen handtekening geverifieerd of abonnement gewijzigd. Zelfs een achteraf geverifieerde dekkingshandtekening zou het HTTPS-eindpuntgedrag en de onderdrukking van volgende verzendingen ongetest laten.
Voor een geautoriseerde end-to-end test gebruikt u een speciaal testabonnement en de door de afzender ondersteunde testomgeving. Controleer een geldige handtekening, verzend de beoogde POST en bevestig de status van het testabonnement via het eigen bewijs van de service. RFC 8058 verbiedt HTTPS-omleidingen en sluit cookies, HTTP-autorisatie en andere verzoekcontext uit van de POST. De ontvanger moet toestemming van de gebruiker verkrijgen voordat hij post. Registreer elke omleiding of inlogvereiste als een defect in plaats van door te klikken; het eindpunt moet de afmelding voltooien zonder aanvullende interactie.
Bescherm abonnee-ID's
Uitschrijf-URL's bevatten vaak een ontvangerspecifiek token. Behandel de volledige URL als potentieel geschikt om het abonnement van die persoon te wijzigen. Redigeer of vervang het token in een algemene diagnostische kopie, bewaar het onaangeroerde bericht privé en plak de live URL niet in openbare tickets of geautomatiseerde ophaalprogramma's.
Sluit af met een expliciete checklist: velden aanwezig, correcte syntaxis, handtekening geverifieerd en geautoriseerde eindpunttest voltooid of niet uitgevoerd. De geschiktheid van bulkafzenders van aanbieders en de weergave van de interface voor afmelden zijn afzonderlijke productvragen. Een headercontrole op standaardniveau garandeert niet dat een mailboxprovider een bepaalde knop weergeeft.
Rapporteer elke laag afzonderlijk
Als er headers aanwezig zijn maar handtekeningvalidatie niet beschikbaar is, rapporteer dan alleen een structurele bevinding. Als de verificatie slaagt maar er geen geautoriseerde eindpunttest heeft plaatsgevonden, laat het gedrag dan ongetest. Noteer het exacte eindmonster en het bewijsmateriaal dat nodig is voor de volgende laag.