Den eksisterende mekanisme kan gøre SPF politik afhænger af et DNS navn, der er samlet fra meddelelsens SMTP input. Dette muliggør finmaskede politikker, men gør det synlige TXT post en dårlig beskrivelse af den faktiske forespørgsel eller dens privatlivsimplikationer.
Godkend ikke en makropolitik, fordi den ser bekendt ud. Udvid den for repræsentative input, identificer den DNS operatør, der modtager forespørgslen, og find ud af, hvad et positivt svar betyder.
Forstå den eksisterende test
exists udvider sin domænespecifikation og udfører en A-record-forespørgsel. Det gør det selv for en IPv6 SMTP forbindelse. Hvis nogen En rekord returneres, matcher mekanismen; den returnerede adresse sammenlignes ikke med den tilsluttede IP. Et AAAA-kun svar opfylder ikke dette A-opslag. Se RFC 7208 afsnit 5.7.
Under den normale + kvalifikation giver en kamp bestået. Et manglende navn eller tomt Et svar stemmer ikke overens; midlertidige DNS fejl skal håndteres i henhold til SPF 's fejlregler, ikke stille om til en autorisationsbeslutning.
Udvid en syntetisk forespørgsel manuelt
Antag en gyldig enkelt post, vellykkede DNS svar og ingen overskridelse af grænser. Overvej v=spf1 exists:%{ir}._permit.%{d} -all på example.com for en IPv4 forbindelse fra 192.0.2.9 . Makroen i repræsenterer inputadressen. r-transformeren vender delene om, og d er det aktuelle evalueringsdomæne. Den udvidede forespørgsel er 9.2.0.192._permit.example.com.
Hvis dette navn returnerer en A-post, såsom den illustrative værdi 127.0.0.2 , eksisterer der match, selvom den adresse adskiller sig fra 192.0.2.9 . Hvis der ikke eksisterer en A-post, og ingen fejl forhindrer evaluering, matcher mekanismen ikke, og politikken når -all .
A-værdien her er kun en positiv-svar-markør. Sikkerhedsbetydningen kommer fra kontrol af det forespurgte DNS navneområde og dets regel for returnering af svar. Et jokertegn, der besvarer alle mulige forespørgsler, kan utilsigtet autorisere hvert input, der når det.
Skelne makro identiteter
D-makroen er det aktuelle domæne, der evalueres. O-makroen kommer fra afsenderens domæne, mens l henviser til afsenderens lokale del. Inkluder eller omdiriger kan ændre evalueringskontekst, så antag ikke, at d og o forbliver udskiftelige i en afhængighed.
Makrotransformatorer kan vælge dele, vende dem og ændre afgrænsninger. IPv6 udvidelse er ikke den samme stiplede decimalstreng som IPv4 . Bruge RFC 7208 §7.2 og RFC 7208 §7.3 og et implementeringsspor for den faktiske form i stedet for at gætte fra et IPv4 eksempel.
Misdannede udvidede navne og for lange etiketter kræver særlig pleje. Under RFC 7208 §4.8, noterer specifikationen implementeringsforskelle for nogle ugyldige domænespecifikke resultater. Hold armaturer inden for gyldig DNS syntaks og test den evaluator, der bruges i dit miljø; hævder ikke, at alle modtagere håndterer alle misdannede input identisk.
Gennemgå privatliv og tilgængelighed
Som beskrevet i RFC 7208 §11.6, kan en makro, der bruger lokal-del- eller fuld-afsenderdata, afsløre meddelelsesrelaterede identitetsoplysninger gennem DNS forespørgsler til navneområdeoperatøren og relevant DNS infrastruktur. Gennemgå de minimumsdata, der kræves, før du bruger et sådant design, især med en tredjepartspolitiktjeneste.
Politikken afhænger også af tilgængeligheden og integriteten af det besvarende DNS system. Registrer, hvem der driver det, hvordan positive svar genereres, hvordan ændringer gennemgås, og hvad der sker under udfald. Under RFC 7208 §4.6.4, DNS-forespørgselsfremkaldende vilkår og ugyldige opslag forblive underlagt SPF grænser; eksisterer giver ikke ubegrænsede eksterne politikopkald.
Byg nyttige acceptarmaturer
Test et autoriseret input, et uautoriseret input, IPv6 hvis det bruges, en DNS afbrydelse og en gyldig, men usædvanlig afsender lokal del, hvis det påvirker forespørgslen. Gem det nøjagtige udvidede navn, forespørgselstype, DNS svar og terminal SPF -resultat for hver armatur.
Test også jokertegnadfærd og ændringer af målzonen. En post kan forblive syntaktisk korrekt, mens svartjenesten ændrer sin tilladelseslogik. Luk kun anmeldelsen, når DNS beslutningen kan forklares og gengives.
Den praktiske takeaway
For eksisterer, er det udvidede DNS spørgsmål det politiske bevis. Gennemgå dets input, svarsemantik, eksponering af privatlivets fred og fejladfærd, før du stoler på det resulterende beståelse.
Registrer beslutningen og dens grænser
For den samme 192.0.2.9 input skal du skelne mellem tre kampe: A= 127.0.0.2 giver en match og standardkvalificeret pass; et vellykket tomt Et svar giver ingen match og når -all ; en midlertidig DNS fejl afslutter evalueringen som temperror frem for at fejle. Fejlreglen er RFC 7208 §5 og RFC 7208 §4.6.2. Disse er forventede resultater, ikke observerede DNS eller evaluatorkørsler.