Auditors ask a different question than deliverability does: can you show the control was configured, on a date, and verified? What they accept as proof.
· By Arshad Ansari · dmarc · spf · email · email-security · research
We scanned 994 of the web's top domains for SPF, DKIM, DMARC, MTA-STS and TLS-RPT. Who enforces, who only monitors, and where whole sectors fall short.
· By Arshad Ansari · dmarc · spf · email · email-security · big-tech · research
Big Tech leads on transport security and is the only cohort meaningfully using MTA-STS — yet several still only monitor at p=none. First-party scan results.
· By Arshad Ansari · mx · dns · email · priority · mail-routing
Priority is a preference number, and lowest wins — senders try it first and fall back only on failure. Equal numbers share load. It says nothing about quality.
· By Arshad Ansari · mx · dns · email · backup-mx · mail-routing
Sending servers already queue and retry for days, so a second MX buys little — and if it is not configured identically, it invites backscatter and relay abuse.
· By Arshad Ansari · google-workspace · mx · dns · email · troubleshooting
Usually leftover MX records from the old host, records on the wrong hostname, a missing trailing dot, or SPF and DMARC rejecting the mail. The checklist.
· By Arshad Ansari · mta-sts · smtp · tls · email-security · dns
Senders need a _mta-sts TXT record with a current id, a policy file over valid HTTPS, and a text/plain content type. Miss one and enforcement is skipped.
Authentication is not the problem — alignment is. The return-path or DKIM signing domain does not match your From: header. Here is how to line them up.
· By Arshad Ansari · spf · email · dns · deliverability · permerror
A domain may publish exactly one SPF record. Two means a permerror and every check fails. Merge the mechanisms into one record, watching the 10-lookup cap.
dkim=none means the message arrived with no DKIM-Signature header at all — not the same as dkim=fail. Why it breaks DMARC, and how to get every sender signing.
MTA-STS and TLS-RPT secure the TLS connection between mail servers. What they do, how they differ from SPF/DKIM/DMARC, and when they are worth the effort.
· By Arshad Ansari · spf · email · dns · deliverability
Every include, a, mx and redirect costs a DNS lookup. Past ten, SPF returns permerror and every check fails. Flatten or drop senders to get back under.
· By Arshad Ansari · whois · dns · ttl · domain-expiry · redemption
Cached DNS records keep answering until their TTL runs out, and the registry adds grace periods. The site goes dark when the registrar sets clientHold.
· By Arshad Ansari · dns · ttl · propagation · nameservers · caching
There is no global push. Resolvers cache each record until its TTL runs out, so the wait is that TTL plus when they last asked. Nameserver changes take longer.
· By Arshad Ansari · dnssec · dns · servfail · ds-record · troubleshooting
A validating resolver returns SERVFAIL when the chain of trust breaks. Check the DS record against your DNSKEY first, then look for expired signatures.
· By Arshad Ansari · caa · dns · certificates · tls · security
A CAA record names which certificate authorities may issue for your domain, so a rogue CA cannot. It is two lines of DNS and it takes effect immediately.
· By Arshad Ansari · tls · ssl · certificates · wildcard · san
A wildcard covers unlimited subdomains at one level of one domain. A SAN covers a fixed list across domains. Pick by how names get added, not by price.
The browser warns because nothing vouches for the certificate. Issue a real one from a public CA, or add your own CA to the trust store — never click through.
Six usual causes: apex-only or www-only rules, nothing listening on port 80, a CDN in Flexible SSL mode looping, no HSTS yet, or a cached old response.
The certificate is renewed on disk but something still serves the old one: an unreloaded service, a second listener, a CDN cache, or the browser itself.
HSTS forces HTTPS for a fixed period, so a wrong max-age or includeSubDomains is hard to undo. Start short, widen slowly, and preload only when certain.
A cert outage is predictable, not unlucky. What to inspect on a live TLS certificate, and the surprises that only show up in the final week before expiry.
The HTTP response headers that protect modern web apps — HSTS, CSP, X-Content-Type-Options, Referrer-Policy, Permissions-Policy — with a safe value for each.
· By Arshad Ansari · cors · access-control-allow-origin · browser · api · headers
The API is not returning the header the browser requires. CORS is enforced in the browser but configured on the server, so no frontend change can fix it.
One header tells the browser which APIs your site may use — camera, microphone, geolocation. Denying the rest shrinks what a script injection can reach.
A 301 is permanent — browsers cache it hard and search engines pass ranking signals to the target. A 302 is temporary and keeps the original URL indexed.
A Content-Security-Policy directive does not inherit once you set a more specific one. If script-src exists, default-src no longer covers your scripts.
· By Arshad Ansari · redirects · http · seo · performance
Long redirect chains bleed SEO equity and add latency. What counts as too many hops, how browsers and crawlers follow them, and how to trace one end-to-end.
Behind a CDN the socket address is always the edge node. The real client IP rides in x-forwarded-for — here's how to read it safely in a Next.js 15 handler.
Reading a JWT's payload is decoding; verifying the signature is a separate trust decision. Here's how to inspect a token safely without conflating them.