Digital exposure report
revolut.com
Moderate exposure. There are gaps an attacker could exploit — fix them soon.
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://revolut.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 revolut.com
A starting point, not a security guarantee.
What this grade means
- Tested hostname
- revolut.com
- Website request
- GET https://revolut.com/ → https://www.revolut.com/
- Scan time
- 2026-11-15 19:22:44 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 | 27/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 | 18/30 | Some browser protections are missing. |
| DNS infrastructure | 8/15 | The domain's infrastructure works, but recommended hardening is missing. |
Fix priorities
- 1.MediumHSTS — enforce encryption in the browser · Hardening gap+4
- 2.MediumDNSSEC — signed DNS records · Hardening gap+7
- 3.MediumCSP — protection from script injection · Hardening gap+8
Findings
SPF — who may send mail for the domain
Passed · Severity: OK · 9/10An authorized sender list is defined; mail from other servers is flagged as suspicious.
~all (softfail) — acceptable when combined with enforced DMARC. 5 of 10 DNS lookups.
v=spf1 include:_spf.google.com include:mail.zendesk.com include:_spf.atlassian.net include:_spf.salesforce.com include:_spf.sparkpostmail.com ~all
$ dig +short TXT revolut.com
DMARC — anti-spoofing policy
Passed · Severity: OK · 13/15Forged email in the company's name is sent to the spam folder.
Policy p=quarantine. p=quarantine — consider moving to p=reject.
v=DMARC1; p=quarantine; pct=100; sp=quarantine; rua=mailto:revolut@rua.netcraft.com,mailto:dmarc@revolut.com; ruf=mailto:revolut@ruf.netcraft.com,mailto:dmarc@revolut.com;
$ dig +short TXT _dmarc.revolut.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=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDgPoFsm/XdbKvRtCD3G3BYwsfZjNgauj7x… s1._domainkey: k=rsa; t=s; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw1gU64wM331J2x42nJ5l0VWV9mz2yyXO… s2._domainkey: k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8tvSmzHnj/KkHIVAuonmai05ZFiat3Js8GETY…
$ dig +short TXT google._domainkey.revolut.com
MX — inbound mail routing
Passed · Severity: OK · unscoredMail exchangers are published for the domain.
5 MX record(s). This shows where inbound mail is routed, not whether mail is sent from the domain.
10 alt3.aspmx.l.google.com 5 alt2.aspmx.l.google.com 1 aspmx.l.google.com 5 alt1.aspmx.l.google.com 10 alt4.aspmx.l.google.com
$ dig +short MX revolut.com
HTTPS available
Passed · Severity: OK · 10/10The site loads over an encrypted connection.
https://revolut.com/ returned HTTP 403 (final URL: https://www.revolut.com/). Client-side certificate validation passed.
HTTP 403 Final URL: https://www.revolut.com/
$ curl -sIL https://revolut.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.revolut.com/
HTTP 301 Location: https://www.revolut.com/
$ curl -sI http://revolut.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: DigiCert, expiring 2027-05-28 (194 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: DigiCert Valid from: 2026-11-11 Valid until: 2027-05-28 Names: revolut.com Based on Certificate Transparency logs; may not reflect the certificate currently served.
$ echo | openssl s_client -connect revolut.com:443 -servername revolut.com 2>/dev/null | openssl x509 -noout -issuer -dates
HSTS — enforce encryption in the browser
Needs attention · Severity: Medium · Hardening gap · 4/8Encryption enforcement is set for too short a time.
max-age=2592000 (30 days), includeSubDomains, preload. ≥ 180 days recommended.
Strict-Transport-Security: max-age=2592000; includeSubDomains; preload
$ curl -sIL https://revolut.com/ | grep -i "Strict-Transport-Security"
- Start with a short max-age (300 seconds) and make sure every subdomain works over HTTPS.
- Gradually raise it to 31536000 (one year) and add includeSubDomains.
- Consider preload only once the policy is stable — removal from the preload list is slow.
/* Strict-Transport-Security: max-age=31536000; includeSubDomains
Safety: This change is made in your server/CDN settings. Test on staging before production. HSTS is cached in the visitor's browser — a long max-age on a site without working HTTPS will block access.
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://revolut.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://revolut.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://revolut.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://revolut.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://revolut.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://revolut.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 revolut.com: NODATA
$ dig +short DS revolut.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 revolut.com SOA delv revolut.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 issue "e-szigno.hu" | 0 issue "ssl.com" | 0 issue "sectigo.com" | 0 issuewild "fnmt.es" | 0 issue "digicert.com" | 0 issue "mastercard.com" | 0 issue "buypass.com" | 0 iodef "mailto:security@revolut.com" | 0 issue "letsencrypt.org" | 0 issue "fnmt.es" | 0 issue "pki.goog" | 0 issue "visa.com" | 0 issue "amazon.com" | 0 issuewild "digicert.com"
0 issue "e-szigno.hu" 0 issue "ssl.com" 0 issue "sectigo.com" 0 issuewild "fnmt.es" 0 issue "digicert.com" 0 issue "mastercard.com" 0 issue "buypass.com" 0 iodef "mailto:security@revolut.com" 0 issue "letsencrypt.org" 0 issue "fnmt.es" 0 issue "pki.goog" 0 issue "visa.com" 0 issue "amazon.com" 0 issuewild "digicert.com"
$ dig +short CAA revolut.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-cloud-d2.googledomains.com ns-cloud-d3.googledomains.com ns-cloud-d4.googledomains.com ns-cloud-d1.googledomains.com
$ dig +short NS revolut.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.02 observed gaps
- NIS2 / vendor due diligence2 observed gaps
- SOC 2 / ISO 27001 baseline2 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 | revolut.com | 172.66.0.231 | 162.159.140.233 |
| AAAA | revolut.com | — |
| MX | revolut.com | 10 alt3.aspmx.l.google.com | 5 alt2.aspmx.l.google.com | 1 aspmx.l.google.com | 5 alt1.aspmx.l.google.com | 10 alt4.aspmx.l.google.com |
| NS | revolut.com | ns-cloud-d2.googledomains.com | ns-cloud-d3.googledomains.com | ns-cloud-d4.googledomains.com | ns-cloud-d1.googledomains.com |
| TXT | revolut.com | atlassian-sending-domain-verification=4952210b-0a37-4050-9a55-ce2c58fa8b28 | VISA=97A654000FAB3C062CAC3619E9F9C0E6 | h1-domain-verification=jwDB6VRcNMMMKRdsNpP2nDe3fTwSEa7H84eZm2ai62vx13Bu | 364227379ef2a02c552e43077718593604053c2fbeee4b0a12c370b8cf4ce088 | google-site-verification=CU5aHHDFaIS7rmPsqSE0Pwt2WXNyZt0YBnoiG3A3Rqc | f1d42c8c84f7179e61cd0d3fdb5da375bd081e44090c7769936e9f0aca343cf9 | 678189f51b3ce2a5d67c166a8ac777440e0c993a23b84d301f725bb84997b148 | serval-domain-verification-9c6c02=cEIzrHyeHnAVd7xUk26tCkXfP | google-site-verification=OXSc6c_1hvbBupLkGnAojCeg21KLxS9_0hJm4Fl5KQs | cursor-domain-verification-sy3hkv=1ZyJzWDtlr5B2kUt7nzYB62MB | v=spf1 include:_spf.google.com include:mail.zendesk.com include:_spf.atlassian.net include:_spf.salesforce.com include:_spf.sparkpostmail.com ~all | apple-domain-verification=9QFO4rtc1CwwuJZW | jamf-site-verification=k8h7_eApcP1vEEE3x5TlkA | 00D8d000001xy3T=1TBTu000000003F | atlassian-domain-verification=3f09F8xwF6p3RmwdwQJHxQdjb8gaKNMWriwUv1Q084JbPSvRNV+HM63xtoL72ENj | 436a12cf57e2df2e19e3bd4cccd5229d6950ac80bd6fa3781de3ef3d2a9fbf9a | 862281804 | VISA=E08F11962574D50E1C9C150D6CD09EB8 | 5a3687060ef94980f6da0f909097b8d8f2e8b8ac5718e0fbd17bb0596ef3121f | ORUvC5FWkczlsgpQD41EiQ | google-site-verification=FvyMDL1jIHpmqVM_Row8cOojeQB3-kIRT2oXNalAYxY | 60a5b08a2f480aef4991e6ff691b557fa15ebdec803229cdc855df6bcc995f69 | VISA=C2C643F71D0B04C4589EE3BBEE8620F6 | openai-domain-verification=dv-zeXdbzLrKAKVTQrTEUoPzdap | _sq9cnlva91hma9r9attizpaqeis9ovp | zapier-domain-verification-challenge=ba39b827-8ec9-4497-b017-72aa7de4f46c | VDJzVD16Woc2iWGs1fFQ2QOf+0ts75OHbERHEVFG7oU= | drift-domain-verification=2b5de3adf04e3120a8c9605ed8fbe18280867c93162d8b8a810414a0ed94afb4 | 067ad03f127e069f7f7aa2360cf866845c0f3f35a71d667e7d1c8dc1cd6f384d | jetbrains-domain-verification=dsa98mjgew5wx4h64rum7zitj | 35039d909ec30a13dbc9f3894c6ca239f29844c1322b7e64d695273872dd49b6 | 125520735 | _58tw41qgnggbur4s48p0gmeds1w2n4r | mtc=NDljMjNkNmYtNTVkZS00MjI2LTg2M2UtYzdhZDcyZGY2NjRj | adobe-idp-site-verification=8b010750c67cbf46c5be78c2e71a28f0211964e09395094a3da0b494dbc651f3 | google-site-verification=w-FzBu1VDsU0MXdPY53ZXz-KYtXb-gmzZTr-QCzIKVc | wiz-domain-verification=5855698809e48702af531b9d8049dbab0e250153fdebc3d712611253db1cf329 | 08bc6f84b232f61558b5c23cfc326216c3e752e58407265048ba5a98d7057001 | Foxit-domain-verification=f54a9f4d26a25ebdbd5447ac0013d0de | pardot969163=bcff4cc1d8a139eeb479882477f5ce35bf6c3ad61dd5a03b9c44aeaf26358da4 | verification_token=6nJlA4vmsz9FGxML8s5RKThu1 | Certeurope=Fgiq7Pvj9CzR824G74JZHrr2MeF3w8 | google-site-verification=J50mEx511qzmeTPOsUU3aZKLmzw6fKn1loRDuzfppUM | amazonses:q7YOwQ1cLMnGLTRksFWhJMsh+i8Ajg08QbY8aSgnrG0= | anthropic-domain-verification-5fpm85=h9V4qLU6UpKu0vTH3VjnBZ6u3 | docusign=e89be285-c58c-436a-9483-c0bfa2ca9b16 | too3o9112f5ioqpu133a5kgl6i | _szxjgexeof7rmpa3i038fmje0djgyjt | docusign=9aa886dc-315c-406b-a75c-a6bf6db6e8bc | MS=ms73364798 | google-site-verification=QpnQ6Qe8tL0izHlvEBNMZ1CJPagyXcRrx5_3QRoqhEc | atlassian-domain-verification=Mzbg6ekGcURWMWeIFPczmNvMDO5QI6FVn3RlnpBVNX+H8EpKVkcJjvwLGVkqUxAa | mtc=YmEyYzAwNWUtZmE2ZS00NGUxLThjODYtMDRlZGRlMWUwN2Iy | google-site-verification=xX_fEjrjlZ3HH1z3z0hRZMt7ddvhhqt5lMzm_z46Qrg |
| TXT | _dmarc.revolut.com | v=DMARC1; p=quarantine; pct=100; sp=quarantine; rua=mailto:revolut@rua.netcraft.com,mailto:dmarc@revolut.com; ruf=mailto:revolut@ruf.netcraft.com,mailto:dmarc@revolut.com; |
| CAA | revolut.com | 0 issue "e-szigno.hu" | 0 issue "ssl.com" | 0 issue "sectigo.com" | 0 issuewild "fnmt.es" | 0 issue "digicert.com" | 0 issue "mastercard.com" | 0 issue "buypass.com" | 0 iodef "mailto:security@revolut.com" | 0 issue "letsencrypt.org" | 0 issue "fnmt.es" | 0 issue "pki.goog" | 0 issue "visa.com" | 0 issue "amazon.com" | 0 issuewild "digicert.com" |
| DS | revolut.com | — |