Digital exposure report
ft.com
Good shape, with a few gaps worth closing this quarter.
Scanned: 2026-11-15 19:22 UTC
Full coverage: every applicable check was assessed.
What to do first
- 1.
Limit what scripts your pages are allowed to run
This adds one layer of protection against injected scripts.
Who can fix it: Your website developer or web host
How to verify after the fix
curl -sIL https://ft.com/ | grep -i "Content-Security-Policy"
- 2.
Turn on DNS signing for your domain
Signing helps resolvers detect forged answers about your domain.
Who can fix it: Your domain registrar or DNS provider
How to verify after the fix
dig +short DS ft.com
A starting point, not a security guarantee.
What this grade means
- Tested hostname
- ft.com
- Website request
- GET https://ft.com/ → https://www.ft.com/
- Scan time
- 2026-11-15 19:22:33 UTC
- Grading method
- Version 2How grading works
- Unverified or excluded checks
- None. Every applicable check was assessed.
This is a snapshot of the public configuration checks listed in this report. It does not verify the site's owner, business legitimacy, application security, or absence of vulnerabilities. It is not a security certification.
Score by category
| Email security | 30/30 | Spoofing email from this domain is hard. |
| Encryption & certificate | 25/25 | Traffic to the site is encrypted and the certificate is valid. |
| Browser protections | 22/30 | Some browser protections are missing. |
| DNS infrastructure | 8/15 | The domain's infrastructure works, but recommended hardening is missing. |
Fix priorities
- 1.MediumDNSSEC — signed DNS records · Hardening gap+7
- 2.MediumCSP — protection from script injection · Hardening gap+8
Findings
SPF — who may send mail for the domain
Passed · Severity: OK · 10/10An authorized sender list is defined and mail from other servers is rejected.
Valid SPF record with -all. 7 of the 10 allowed DNS lookups.
v=spf1 include:_spf.google.com include:mktomail.com include:_spf.salesforce.com include:email.hivebrite.com include:spf.mandrillapp.com include:24982124.spf07.hubspotemail.net include:spf.alida.io -all
$ dig +short TXT ft.com
DMARC — anti-spoofing policy
Passed · Severity: OK · 15/15Forged email in the company's name is blocked by mail servers.
Policy p=reject.
v=DMARC1; p=reject; pct=100; rua=mailto:dmarc@ft.com; ruf=mailto:dmarc@ft.com
$ dig +short TXT _dmarc.ft.com
DKIM — digital signature on email
Passed · Severity: OK · 5/5A DKIM public key is published. On its own this doesn't prove outgoing mail is signed or aligned with your From domain.
DKIM public key found for selector: google, s1, s2. Confirm signing with dkim=pass in a sent message's Authentication-Results.
google._domainkey: v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCge4SBUU2LDdTqGC/mDp7HemXB8IgADojo… s1._domainkey: k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+0GqHvbMEmQJnh7pp8zsTmj8H3NALhnSEYl6k… s2._domainkey: k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCe6X90c32x3YnI3BhRKaA6V8SRwWLin0NbR3Q…
$ dig +short TXT google._domainkey.ft.com
MX — inbound mail routing
Passed · Severity: OK · unscoredMail exchangers are published for the domain.
2 MX record(s). This shows where inbound mail is routed, not whether mail is sent from the domain.
10 mxa.germany.inbound.cf-emailsecurity.net 10 mxb.germany.inbound.cf-emailsecurity.net
$ dig +short MX ft.com
HTTPS available
Passed · Severity: OK · 10/10The site loads over an encrypted connection.
https://ft.com/ returned HTTP 403 (final URL: https://www.ft.com/). Client-side certificate validation passed.
HTTP 403 Final URL: https://www.ft.com/
$ curl -sIL https://ft.com/
HTTP → HTTPS redirect
Passed · Severity: OK · 7/7Visitors arriving at an unencrypted address are automatically sent to the secure version.
HTTP 301 → https://www.ft.com/
HTTP 301 Location: https://www.ft.com/
$ curl -sI http://ft.com/ | grep -iE "^(HTTP|location)"
SSL/TLS certificate validity
Passed · Severity: OK · 8/8The certificate was accepted by a validating TLS client at scan time.
Live TLS handshake succeeded. Latest issuance in CT logs: Amazon Trust Services, expiring 2027-05-13 (179 days). CT shows issued certificates, not necessarily the one served — confirm dates with the verify command.
Live TLS handshake: certificate accepted CT logs (context only, not scored): Issuer: Amazon Trust Services Valid from: 2026-10-28 Valid until: 2027-05-13 Names: ft.com Based on Certificate Transparency logs; may not reflect the certificate currently served.
$ echo | openssl s_client -connect ft.com:443 -servername ft.com 2>/dev/null | openssl x509 -noout -issuer -dates
HSTS — enforce encryption in the browser
Passed · Severity: OK · 8/8Browsers are told to always use an encrypted connection to the site.
max-age=63072000 (730 days), includeSubDomains, preload. ≥ 180 days recommended.
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
$ curl -sIL https://ft.com/ | grep -i "Strict-Transport-Security"
CSP — protection from script injection
Failed · Severity: Medium · Hardening gap · 0/8Missing Content-Security-Policy header: this removes one layer of protection against script injection.
No Content-Security-Policy header found.
Content-Security-Policy: (missing)
$ curl -sIL https://ft.com/ | grep -i "Content-Security-Policy"
- First publish Content-Security-Policy-Report-Only — it blocks nothing, it only reports.
- Collect violations for a week or two and tune the policy to your legitimate sources.
- Switch to the Content-Security-Policy header and replace 'unsafe-inline' with a nonce or hash.
/* Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'self'
Safety: This change is made in your server/CDN settings. Test on staging before production. An overly strict CSP will break scripts — that's why you start in Report-Only mode.
Clickjacking protection
Passed · Severity: OK · 5/5The site can't be embedded by foreign sites.
X-Frame-Options: SAMEORIGIN
X-Frame-Options: SAMEORIGIN
$ curl -sIL https://ft.com/ | grep -i "X-Frame-Options"
X-Content-Type-Options
Passed · Severity: OK · 4/4The browser won't guess file types in a way that could execute code.
nosniff is set.
X-Content-Type-Options: nosniff
$ curl -sIL https://ft.com/ | grep -i "X-Content-Type-Options"
Referrer-Policy
Passed · Severity: OK · 3/3Internal URLs don't leak to external sites.
Referrer-Policy: same-origin
Referrer-Policy: same-origin
$ curl -sIL https://ft.com/ | grep -i "Referrer-Policy"
Permissions-Policy
Passed · Severity: OK · 2/2The site restricts access to sensitive browser features.
Permissions-Policy: accelerometer=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),magnetometer=(),microphone=(),payment=(),publickey-credential
Permissions-Policy: accelerometer=(),camera=(),clipboard-read=(),clipboard-write=(),geolocation=(),gyroscope=(),hid=(),magnetometer=(),microphone=(),payment=(),publickey-credentials-get=(),screen-wake-lock=(),serial=(),sync-xhr=(),usb=(),xr-spatial-tracking=*
$ curl -sIL https://ft.com/ | grep -i "Permissions-Policy"
Software version disclosure
Passed · Severity: OK · unscoredThe server doesn't disclose software versions.
No version numbers found in the Server / X-Powered-By headers.
server: cloudflare x-powered-by: (missing)
$ curl -sIL https://ft.com/ | grep -iE "^(server|x-powered-by)"
DNSSEC — signed DNS records
Needs attention · Severity: Medium · Hardening gap · 0/7The domain's records aren't signed, so in some scenarios users could be redirected to a forged server.
No DS record is published at the parent zone, so there's no DNSSEC chain of trust for this zone.
AD = false DS ft.com: NODATA
$ dig +short DS ft.com
- Enable DNSSEC at your DNS provider (one click at most providers).
- Copy the DS record your provider generates to your domain registrar.
- Wait for propagation and verify with DNSViz.
dig +dnssec ft.com SOA delv ft.com
Safety: DNS changes are made only at your DNS provider. This tool only reads public data and changes nothing on the domain. A wrong DS record at the registrar will make the domain stop resolving — copy it exactly from the provider.
CAA — who may issue certificates
Passed · Severity: OK · 5/5Only authorized certificate authorities can issue certificates for the domain.
CAA records: 0 iodef "mailto:cyber.security@ft.com" | 0 issue "amazon.com" | 0 issue "certainly.com" | 0 issue "digicert.com" | 0 issue "globalsign.com" | 0 issue "letsencrypt.org" | 0 issue "pki.goog; cansignhttpexchanges=yes" | 0 issuewild "amazon.com" | 0 issuewild "certainly.com" | 0 issuewild "digicert.com" | 0 issuewild "letsencrypt.org" | 0 issuewild "pki.goog; cansignhttpexchanges=yes"
0 iodef "mailto:cyber.security@ft.com" 0 issue "amazon.com" 0 issue "certainly.com" 0 issue "digicert.com" 0 issue "globalsign.com" 0 issue "letsencrypt.org" 0 issue "pki.goog; cansignhttpexchanges=yes" 0 issuewild "amazon.com" 0 issuewild "certainly.com" 0 issuewild "digicert.com" 0 issuewild "letsencrypt.org" 0 issuewild "pki.goog; cansignhttpexchanges=yes"
$ dig +short CAA ft.com
DNS server redundancy
Passed · Severity: OK · 3/3The domain is served by several DNS servers, so one server failing won't take it down.
4 NS servers.
ns-1447.awsdns-52.org ns-1984.awsdns-56.co.uk ns-52.awsdns-06.com ns-530.awsdns-02.net
$ dig +short NS ft.com
Indicative alignment
Best-practice mapping of public findings to common frameworks. Passive scanning tests public configuration only; it doesn't prove compliance or a violation.
- Google & Yahoo sender rulesNo gaps observed
- PCI DSS v4.01 observed gaps
- NIS2 / vendor due diligence1 observed gaps
- SOC 2 / ISO 27001 baseline1 observed gaps
Indicative alignment only, based on public configuration. It doesn't establish whether a framework applies to you, and it isn't legal advice, an audit or a certification.
Public DNS records
| A | ft.com | 18.155.75.110 | 18.155.75.25 | 18.155.75.102 | 18.155.75.100 |
| AAAA | ft.com | 2600:9000:2106:b400:8:c5e2:6700:93a1 | 2600:9000:2106:ca00:8:c5e2:6700:93a1 | 2600:9000:2106:a200:8:c5e2:6700:93a1 | 2600:9000:2106:d600:8:c5e2:6700:93a1 | 2600:9000:2106:9800:8:c5e2:6700:93a1 | 2600:9000:2106:c400:8:c5e2:6700:93a1 | 2600:9000:2106:d000:8:c5e2:6700:93a1 | 2600:9000:2106:6200:8:c5e2:6700:93a1 |
| MX | ft.com | 10 mxa.germany.inbound.cf-emailsecurity.net | 10 mxb.germany.inbound.cf-emailsecurity.net |
| NS | ft.com | ns-1447.awsdns-52.org | ns-1984.awsdns-56.co.uk | ns-52.awsdns-06.com | ns-530.awsdns-02.net |
| TXT | ft.com | /9JIaeVTZTKIvRQN3nbfJN6BNbLYOjQelBjl6qUN4/s= | IktKRV0FPEeiosHW0zf4Lw | MS=ms15735648 | MS=ms23088425 | MS=ms23619679 | MS=ms39959132 | MS=ms50570352 | MS=ms54676079 | MS=ms87193117 | access-domain-verification=436fdc74c8ebd0d982301a0c1a3b752176a55246a7c97b159d335f195ea09288 | adobe-idp-site-verification=c5baff41-b308-42c8-8ace-9393ace1d783 | amazonses:Dw3ndQPO42StK7/Toh+RBHUOydpp514RsYbCJWony5A= | amazonses:HvBZtqew7lgZbGfdU4V/Gd07PT9PXZUEHTkH5eHdwYw= | amazonses:NceEuFJaVFhkB7aKpzAp27vTpU0Z/HHD/LBjG/Jg9yk= | apple-domain-verification=hiRNMTWYN1yBRwg4 | asv=d0c9c01ad65bddcc0eee60ecfc13201f | atlassian-domain-verification=/flKBbAdKfXx7mblo5+qFf5hD7psLK8FrrnR9vB5xL5zyvD19GRnuo4/PrNPij84 | atlassian-domain-verification=hVzdk0lf3NQ/udMQWFZWxWA8eOjXyOjGD6e+1kcBpqqsLX8LHdqE5pNv+c32u0ho | cloudflare_dashboard_sso=cb52a8597e3ed22ef489d879b270709f | docker-verification=f23e7fb2-5705-49f2-a965-506add981f13 | docusign=c04c5b8c-58c7-4024-99f3-fb1f636da0d0 | facebook-domain-verification=15ore8k5t6ft96p6lt8sb02m8dls4w | facebook-domain-verification=k64kwvkb345rz292m21kltvaf1r5d5 | facebook-domain-verification=k7y14n0l2qtawyedyyz5fiu9ngsvg7 | facebook-domain-verification=wb6970zko03f90a0lxi4gpt89lnybl | facebook-domain-verification=wnuqdndij8zjroogp6jlsu8ud0yu3q | figma-domain-verification=8ea20ad3e142b70da670a8313afdeb991a189ec78f024825dd321a4f186a9dc7-1762176141 | google-site-verification=nqX1TPP8SIFG3F_1ULz5qPw7qEqO4Bowh14fkxdESfo | google-site-verification=sXoPNkEqXt3ce7rT9MnH2bnjNLKFR3oizWMMmkQFDLI | jamf-site-verification=lbgmfPGJwTYfXRt8qeKWNA | make-domain-verification=25fb721f-943e-4b5d-8268-48ff60f61191 | mandrill_verify.JufTb8PUBLcJ8tPLkojezA | mongodb-site-verification=l2ACYeoZMEwgZw4T5SPbJiGRPoBKC3wt | notion-domain-verification=mkIjxnyKOdeLmDtzKbgWoLKngPBDT5U2dmxXWbCzf7l | openai-domain-verification=dv-bxQol3maMz9EffWDUvCsa5cG | pardot596911=26c4369191477541d69fe3837196409e805f282f3e4aef8171e20293d42957ad | pardot_218412=760e83e8fe2a693cf55ad39557c5d2ffa643883ebace2abcb9c1ce7397544cb0 | slack-domain-verification=z853Xxvh1FXWNfobsGsdZp626tQCj0k4tvSa2w4O | sophos-domain-verification=67ec68273fd952a93f6de23473f7209d3f10f79602e68759b4a0fbf41588d36b | v=spf1 include:_spf.google.com include:mktomail.com include:_spf.salesforce.com include:email.hivebrite.com include:spf.mandrillapp.com include:24982124.spf07.hubspotemail.net include:spf.alida.io -all |
| TXT | _dmarc.ft.com | v=DMARC1; p=reject; pct=100; rua=mailto:dmarc@ft.com; ruf=mailto:dmarc@ft.com |
| CAA | ft.com | 0 iodef "mailto:cyber.security@ft.com" | 0 issue "amazon.com" | 0 issue "certainly.com" | 0 issue "digicert.com" | 0 issue "globalsign.com" | 0 issue "letsencrypt.org" | 0 issue "pki.goog; cansignhttpexchanges=yes" | 0 issuewild "amazon.com" | 0 issuewild "certainly.com" | 0 issuewild "digicert.com" | 0 issuewild "letsencrypt.org" | 0 issuewild "pki.goog; cansignhttpexchanges=yes" |
| DS | ft.com | — |