Peru tilaus yhdellä napsautuksella yhdistää kaksi järjestelmää: toimintaa mainostavan viestin ja sitä käsittelevän palvelun. Oikean näköinen otsikko on vain puolet toteutuksesta. Päätepisteen on tunnistettava aiottu tilaus, hyväksyttävä määritetty pyyntö ilman kirjautumista ja tehtävä opt-out tehokkaaksi.
Rakenna viesti ennen sen allekirjoittamista
RFC 8058 vaatii yhtä List-Unsubscribe kenttää, joka sisältää HTTPS-URI:n, ja yhtä List-Unsubscribe-Post kenttää, joka sisältää List-Unsubscribe =One-Click. A kelvollinen DKIM -allekirjoitus on katettava molemmat kentät. Muita ei-HTTP/S-tilauksen URI-tunnisteita, kuten mailto, voivat myös näkyä List-Unsubscribe -kohdassa. RFC 8058 kohdat 3 ja 4.
Minimaalinen havainnollistava otsikkopari on:
List-Unsubscribe: <https://unsubscribe.example.test/u/opaque-token>
List-Unsubscribe-Post : List-Unsubscribe =Yksi napsautus
Varattu isäntänimi ja tunnus ovat opettavia paikkamerkkejä, eivät toiminnallisia päätepisteitä. Lisää nämä kentät ennen viimeistä asiaankuuluvaa allekirjoitusvaihetta. Tarkista lähetetty viesti varmistaaksesi, että allekirjoituksen h=-luettelo sisältää ne ja että salaustarkistus onnistuu kaikkien muunnosten jälkeen.
Anna URI:n tunnistaa tarkka toiminto
URI:ssa on oltava tarpeeksi tietoa vastaanottajan ja luettelon tunnistamiseksi. Vastaanottaja ei voi toimittaa ylimääräistä vastaanottajakenttää tai vastata asetuskyselyyn. Käytä läpinäkymätöntä, vaikeasti väärennettävää komponenttia ja validoi se päätepisteessä. Vältä paljastamasta osoitteita tarpeettomasti URL-osoitteissa, lokeissa tai analytiikassa.
Käsittele tunnusta valtuutuksena tehdä kapea-alainen tilauksen peruutus, ei yleisenä tilin kirjautumistietona. Joku, jolla on pääsy viestiin, saattaa pystyä käyttämään sitä. Älä anna sen muuttaa tilin omistajuutta, kirjautua sisään käyttäjänä tai muuttaa asiaankuulumattomia tilauksia. Valitse säilytys- ja vanhentumiskäyttäytyminen tietoisesti, jotta vanhoista viesteistä ei tule turhia kieltäytymispolkuja ilman harkittua käytäntöä.
Käsittele määritetty POST suoraan
Vastaanotin lähettää HTTPS POST:n, jonka rungossa on mainostettu avain/arvo-pari. RFC 8058 sallii Application/x-www-form-urlencoded ja suosittelee moniosaista/lomakedataa. Pyyntö ei saa perustua evästeisiin, HTTP-valtuutukseen tai aikaisempaan selainkontekstiin. Lähettäjä ei saa palauttaa HTTPS-uudelleenohjausta. Vastaanottajan on saatava käyttäjän suostumus ennen toiminnon suorittamista.
Tekstilinkki voi silti tarjota ihmisen luettavissa olevan asetussivun, mutta POST-toiminto on suoritettava loppuun ilman lisätoimia. Toteutuksen suojana pidä GET-pyynnöt tuhoamattomina, jotta automaattinen linkinhaku ei itse poista tilaajaa. Tämä suojakeino on toiminnallinen suunnittelusuositus, joka perustuu RFC:n käsittelemään ongelmaan.
Tarkista sovelluksen tila, ei vain tilakoodi
Oletetaan, että hypoteettinen päätepiste palauttaa kelvollisen uutiskirjeen tunnuksen onnistumisen, mutta seuraava kampanjavienti sisältää silti saman vastaanottaja/luettelo-parin. Protokollapyyntö on saattanut saapua palveluun, mutta toiminnan estoa ei ole muodostettu. Tarkista kestävä päätös, leviämisvahvistus ja yleisövalintasyöte sen sijaan, että käsittelisit tilakoodia valmiina.
Määritä valtuutetun testin odotetut tulokset ensin: GET ja virheellinen tunnus eivät saa poistaa tilauksia; kelvollisen POST-testin tulee vaikuttaa vain sille tarkoitettuun pariin; sen toistamisen pitäisi säilyttää sama lopullinen tila. Nämä ovat suunnitteluodotuksia, eivät suoritettuja paikallisia tai tuotantotestejä.
Varmista käyttöönottoa varten erikseen TLS -varmenteen voimassaolo, isäntänimi, julkinen tavoitettavuus, molemmat tuetut lomakkeiden koodaukset, välityspalvelimen toiminta ja nopeusrajoitukset. Tarkista, että vastaus ei ohjaa kirjautumis- tai seurantapalveluun. Varmista, että seuraava kampanjavalinta kunnioittaa estoa, mukaan lukien välimuistit tai kolmannen osapuolen viennit.
Käytä päätepistettä kestävänä palveluna
Tee toistuvat kelvolliset pyynnöt turvallisiksi, tallenna pieni tarkastustapahtuma ja seuraa vikoja paljastamatta tunnuksia. Varoitus käsittelyvirheistä ja tukahduttamisruuhkaista. Vastaus, joka väittää onnistuneen ennen kestävää päivitystä, vaatii luotettavan käsittelysuunnitelman ja rajatun valmistumisajan.
Sulje toteutus viestien vahvistuksella, päätepistetesteillä ja valvotun vastaanottajan seuraavan lähetyksen poissulkemisella. Mikään näistä ei yksinään todista, että jokaisessa postilaatikon käyttöliittymässä näkyy tilauksen peruutuspainike.
Valitse korjaus epäonnistuneesta tarkistuspisteestä
Uudelleenohjaus- tai kirjautumisvaatimus vaatii päätepisteen korjaamisen. Väärä vastaanottaja/luettelokartoitus vaatii valtuutusalueen korjausta. Oikea päätepiste vanhentuneen kampanjan viennin kanssa edellyttää leviämisen korjausta. Älä sulje kaikkia kolmea, koska yksi POST palautti onnistumisen.