Skip to content
https://trezor.io

Security

· 12 checks — HTTP headers, CSP, TLS handshake, and cookie hygiene rolled into one auditable list.
SCORE
90
GRADE
A
FIX
0
REVIEW
4
PASS
8
INFO
0
Checks
12
8 PASS 4 REVIEW
B
Content Security Policy
8 of 10 CSP checks passed
REVIEW
8 of 10 CSP checks passed
Info::
Raw CSP policy
Got: base-uri 'self';default-src 'self';frame-ancestors 'none';form-action 'self' https:;upgrade-insecure-requests ;script-src 'self' 'unsafe-inline' https://pay.google.com https://applepay.cdn-apple.com https://challenges.cloudflare.com https://www.googleadservices.com https://*.google-analytics.com/analytics.js https://www.google-analytics.com/plugins/ https://static.ads-twitter.com https://www.googletagmanager.com https://www.googletagmanager.com/debug/ https://www.googletagmanager.com/gtag/ https://sgtm.trezor.io https://*.ada.support https://*.analytics.google.com https://*.g.doubleclick.net/pagead/ https://stats.g.doubleclick.net https://www.google-analytics.com https://*.googlesyndication.com https://connect.facebook.net https://widget.packeta.com https://web.cmp.usercentrics.eu/ https://app.usercentrics.eu/ https://sources.usercentrics.eu https://platform.twitter.com/ https://s.yimg.com;connect-src 'self' https://google.com/pay https://applepay.cdn-apple.com https://o117836.ingest.us.sentry.io/ https://o117836.ingest.sentry.io/ https://*.adyen.com https://www.googletagmanager.com https://sgtm.trezor.io https://www.googleadservices.com https://*.analytics.google.com https://*.g.doubleclick.net/pagead/ https://stats.g.doubleclick.net https://www.google-analytics.com https://*.googlesyndication.com https://*.google.com https://*.google.ca https://*.google.de https://*.google.il https://*.google.fr https://*.google.ae https://*.google.fi https://*.google.cz https://*.google.nl https://*.google.co.uk https://*.google.bh https://*.google.es https://*.google.co.au https://*.google.pl https://*.google.co.id https://*.google.ng https://*.google.cm https://*.google.co.th https://*.google.ch https://*.google.com.sg https://*.google.pt https://*.google.com.mx https://*.google.co.jp https://*.google.co.kr https://*.google.com.br https://*.google.it https://*.google.co.in https://*.google.com.tr https://*.google.se https://*.google.no https://*.google.dk https://*.google.at https://*.google.be https://*.google.ie https://*.google.co.za https://*.google.com.ar https://*.google.cl https://*.google.co.nz https://*.google.gr https://*.google.hu https://*.google.ro https://*.google.com.hk https://*.google.com.tw https://*.google.com.my https://*.google.com.ph https://*.google.com.vn https://*.ada.support *.cloudflarestream.com https://widget.packeta.com https://ad.doubleclick.net/ https://www.facebook.com/privacy_sandbox https://www.facebook.com/privacy_sandbox/topics/registration/ https://v1.api.service.cmp.usercentrics.eu https://consent-api.service.consent.usercentrics.eu https://api.usercentrics.eu https://consents.usercentrics.eu https://aggregator.service.usercentrics.eu https://uct.service.usercentrics.eu;img-src 'self' https://trezor.io data: https://imagedelivery.net https://googleads.g.doubleclick.net https://ad.doubleclick.net https://www.googletagmanager.com https://sgtm.trezor.io https://analytics.twitter.com https://t.co https://www.gstatic.com/instantbuy/ https://www.gstatic.com/images/ https://*.adyen.com https://www.google.com https://google.com https://fonts.gstatic.com https://www.facebook.com https://*.ytimg.com https://app.usercentrics.eu https://uct.service.usercentrics.eu https://images.usercentrics.eu https://*.analytics.google.com https://*.g.doubleclick.net/pagead/ https://stats.g.doubleclick.net https://www.google-analytics.com https://*.googlesyndication.com https://*.google.com https://*.google.ca https://*.google.de https://*.google.il https://*.google.fr https://*.google.ae https://*.google.fi https://*.google.cz https://*.google.nl https://*.google.co.uk https://*.google.bh https://*.google.es https://*.google.co.au https://*.google.pl https://*.google.co.id https://*.google.ng https://*.google.cm https://*.google.co.th https://*.google.ch https://*.google.com.sg https://*.google.pt https://*.google.com.mx https://*.google.co.jp https://*.google.co.kr https://*.google.com.br https://*.google.it https://*.google.co.in https://*.google.com.tr https://*.google.se https://*.google.no https://*.google.dk https://*.google.at https://*.google.be https://*.google.ie https://*.google.co.za https://*.google.com.ar https://*.google.cl https://*.google.co.nz https://*.google.gr https://*.google.hu https://*.google.ro https://*.google.com.hk https://*.google.com.tw https://*.google.com.my https://*.google.com.ph https://*.google.com.vn https://static.trezor.io;style-src 'self' 'unsafe-inline' fonts.googleapis.com https://www.googletagmanager.com/debug/;frame-src 'self' blob: https:;media-src 'self' blob: *.cloudflarestream.com https://static.trezor.io;manifest-src 'self';font-src 'self' fonts.gstatic.com;object-src 'none';worker-src 'self' blob:;report-uri https://o117836.ingest.sentry.io/api/4505085246439425/security/?sentry_key=8cf8d402f4604fbdaccba7321636d0f2;report-to csp-endpoint;
Info::
default-src directive is set
Got: default-src 'self'
Critical::
'unsafe-inline' found in script source
'unsafe-inline' allows inline <script> tags, defeating CSP against XSS. Remove it and use nonces or hashes instead.
Got: script-src 'self' 'unsafe-inline' https://pay.google.com https://applepay.cdn-apple.com https://challenges.cloudflare.com https://www.googleadservices.com https://*.google-analytics.com/analytics.js https://www.google-analytics.com/plugins/ https://static.ads-twitter.com https://www.googletagmanager.com https://www.googletagmanager.com/debug/ https://www.googletagmanager.com/gtag/ https://sgtm.trezor.io https://*.ada.support https://*.analytics.google.com https://*.g.doubleclick.net/pagead/ https://stats.g.doubleclick.net https://www.google-analytics.com https://*.googlesyndication.com https://connect.facebook.net https://widget.packeta.com https://web.cmp.usercentrics.eu/ https://app.usercentrics.eu/ https://sources.usercentrics.eu https://platform.twitter.com/ https://s.yimg.com
Info::
No 'unsafe-eval' in script source
Info::
No wildcard in script source
Info::
object-src is set to 'none'
Got: object-src 'none'
Info::
base-uri is properly restricted
Got: base-uri 'self'
Info::
frame-ancestors directive is set
Got: frame-ancestors 'none'
Info::
form-action directive is set
Got: form-action 'self' https:
Info::
upgrade-insecure-requests is enabled

'unsafe-inline' allows inline <script> tags, defeating CSP against XSS. Remove it and use nonces or hashes instead.

Why this matters

Unsafe value (unsafe-inline, unsafe-eval) in script-src defeats CSP's main protection — XSS injections can execute again.

Learn more

unsafe-inline allows inline <script> tags; unsafe-eval allows eval() and similar. Both are necessary for some legacy code but explicitly dangerous. Migrate to nonces (per-page random tokens) or hashes (per-script SHA-256) instead.

Source: OWASP CSP / MDN

Parsed Policy

base-uri 'self'
default-src 'self'
frame-ancestors 'none'
form-action 'self'https:
upgrade-insecure-requests
script-src 'self''unsafe-inline'https://pay.google.comhttps://applepay.cdn-apple.comhttps://challenges.cloudflare.comhttps://www.googleadservices.comhttps://*.google-analytics.com/analytics.jshttps://www.google-analytics.com/plugins/https://static.ads-twitter.comhttps://www.googletagmanager.comhttps://www.googletagmanager.com/debug/https://www.googletagmanager.com/gtag/https://sgtm.trezor.iohttps://*.ada.supporthttps://*.analytics.google.comhttps://*.g.doubleclick.net/pagead/https://stats.g.doubleclick.nethttps://www.google-analytics.comhttps://*.googlesyndication.comhttps://connect.facebook.nethttps://widget.packeta.comhttps://web.cmp.usercentrics.eu/https://app.usercentrics.eu/https://sources.usercentrics.euhttps://platform.twitter.com/https://s.yimg.com
connect-src 'self'https://google.com/payhttps://applepay.cdn-apple.comhttps://o117836.ingest.us.sentry.io/https://o117836.ingest.sentry.io/https://*.adyen.comhttps://www.googletagmanager.comhttps://sgtm.trezor.iohttps://www.googleadservices.comhttps://*.analytics.google.comhttps://*.g.doubleclick.net/pagead/https://stats.g.doubleclick.nethttps://www.google-analytics.comhttps://*.googlesyndication.comhttps://*.google.comhttps://*.google.cahttps://*.google.dehttps://*.google.ilhttps://*.google.frhttps://*.google.aehttps://*.google.fihttps://*.google.czhttps://*.google.nlhttps://*.google.co.ukhttps://*.google.bhhttps://*.google.eshttps://*.google.co.auhttps://*.google.plhttps://*.google.co.idhttps://*.google.nghttps://*.google.cmhttps://*.google.co.thhttps://*.google.chhttps://*.google.com.sghttps://*.google.pthttps://*.google.com.mxhttps://*.google.co.jphttps://*.google.co.krhttps://*.google.com.brhttps://*.google.ithttps://*.google.co.inhttps://*.google.com.trhttps://*.google.sehttps://*.google.nohttps://*.google.dkhttps://*.google.athttps://*.google.behttps://*.google.iehttps://*.google.co.zahttps://*.google.com.arhttps://*.google.clhttps://*.google.co.nzhttps://*.google.grhttps://*.google.huhttps://*.google.rohttps://*.google.com.hkhttps://*.google.com.twhttps://*.google.com.myhttps://*.google.com.phhttps://*.google.com.vnhttps://*.ada.support*.cloudflarestream.comhttps://widget.packeta.comhttps://ad.doubleclick.net/https://www.facebook.com/privacy_sandboxhttps://www.facebook.com/privacy_sandbox/topics/registration/https://v1.api.service.cmp.usercentrics.euhttps://consent-api.service.consent.usercentrics.euhttps://api.usercentrics.euhttps://consents.usercentrics.euhttps://aggregator.service.usercentrics.euhttps://uct.service.usercentrics.eu
img-src 'self'https://trezor.iodata:https://imagedelivery.nethttps://googleads.g.doubleclick.nethttps://ad.doubleclick.nethttps://www.googletagmanager.comhttps://sgtm.trezor.iohttps://analytics.twitter.comhttps://t.cohttps://www.gstatic.com/instantbuy/https://www.gstatic.com/images/https://*.adyen.comhttps://www.google.comhttps://google.comhttps://fonts.gstatic.comhttps://www.facebook.comhttps://*.ytimg.comhttps://app.usercentrics.euhttps://uct.service.usercentrics.euhttps://images.usercentrics.euhttps://*.analytics.google.comhttps://*.g.doubleclick.net/pagead/https://stats.g.doubleclick.nethttps://www.google-analytics.comhttps://*.googlesyndication.comhttps://*.google.comhttps://*.google.cahttps://*.google.dehttps://*.google.ilhttps://*.google.frhttps://*.google.aehttps://*.google.fihttps://*.google.czhttps://*.google.nlhttps://*.google.co.ukhttps://*.google.bhhttps://*.google.eshttps://*.google.co.auhttps://*.google.plhttps://*.google.co.idhttps://*.google.nghttps://*.google.cmhttps://*.google.co.thhttps://*.google.chhttps://*.google.com.sghttps://*.google.pthttps://*.google.com.mxhttps://*.google.co.jphttps://*.google.co.krhttps://*.google.com.brhttps://*.google.ithttps://*.google.co.inhttps://*.google.com.trhttps://*.google.sehttps://*.google.nohttps://*.google.dkhttps://*.google.athttps://*.google.behttps://*.google.iehttps://*.google.co.zahttps://*.google.com.arhttps://*.google.clhttps://*.google.co.nzhttps://*.google.grhttps://*.google.huhttps://*.google.rohttps://*.google.com.hkhttps://*.google.com.twhttps://*.google.com.myhttps://*.google.com.phhttps://*.google.com.vnhttps://static.trezor.io
style-src 'self''unsafe-inline'fonts.googleapis.comhttps://www.googletagmanager.com/debug/
frame-src 'self'blob:https:
media-src 'self'blob:*.cloudflarestream.comhttps://static.trezor.io
manifest-src 'self'
font-src 'self'fonts.gstatic.com
object-src 'none'
worker-src 'self'blob:
report-uri https://o117836.ingest.sentry.io/api/4505085246439425/security/?sentry_key=8cf8d402f4604fbdaccba7321636d0f2
report-to csp-endpoint
B
Permissions-Policy
2 directives, 3 missing
REVIEW
2 directives, 3 missing
Info::
camera=() — blocked for all origins
Info::
microphone=() — blocked for all origins
Info::
geolocation not restricted
Consider adding geolocation=() to block geolocation access from embedded content.
Info::
payment not restricted
Consider adding payment=() to block payment access from embedded content.
Info::
usb not restricted
Consider adding usb=() to block usb access from embedded content.

Raw Header

camera=() microphone=()

Feature Permissions

Blocked Self Only Unrestricted Not Set
camera Blocked
microphone Blocked
geolocation Not Set
payment Not Set
usb Not Set
B
CORS Configuration
No CORS headers
REVIEW
No CORS headers
Info::
No CORS headers present — secure default
CORS Configuration Secure

No CORS headers detected.

Cross-origin requests are blocked by browser same-origin policy.

Origin reflection test

Some servers mirror the request Origin header, which can be exploited. Test manually:

curl -sI -H "Origin: https://evil.com" <url> | grep -i access-control
B
security.txt
Published with 1 contact(s)
REVIEW

security.txt

Contact: security@satoshilabs.com
A
Security Headers
8 of 10 headers properly configured
PASS
8 of 10 headers properly configured
Info::
Strict-Transport-Security is properly configured
Got: max-age=31536000; includeSubDomains; preload
Info::
X-Content-Type-Options is properly configured
Got: nosniff
Info::
X-Frame-Options is properly configured
Got: DENY
Info::
Referrer-Policy is properly configured
Got: strict-origin-when-cross-origin
Info::
Permissions-Policy is set
Got: camera=(), microphone=()
Info::
Content-Security-Policy is present
Got: base-uri 'self';default-src 'self';frame-ancestors 'none';form-action 'self' htt…
Warning::
Cross-Origin-Opener-Policy header is missing
COOP isolates your browsing context, preventing cross-origin side-channel attacks. Set to 'same-origin'.
Expected: same-origin
Warning::
Cross-Origin-Embedder-Policy header is missing
COEP prevents loading cross-origin resources without explicit permission. Required for SharedArrayBuffer and high-resolution timers.
Expected: require-corp
Info::
X-Powered-By header is not present
Info::
Server header is present without version info
Got: cloudflare

COOP isolates your browsing context, preventing cross-origin side-channel attacks. Set to 'same-origin'.

Expected: same-origin
Why this matters

COOP isolates your top-level browsing context from cross-origin windows — without it, popup-based side-channel attacks remain possible.

Learn more

Cross-Origin-Opener-Policy: same-origin prevents cross-origin pages from sharing a browsing-context group with yours. This blocks cross-window references that enable Spectre-style timing attacks and tab-nabbing. Required if you want to enable SharedArrayBuffer.

Source: MDN / web.dev

COEP prevents loading cross-origin resources without explicit permission. Required for SharedArrayBuffer and high-resolution timers.

Expected: require-corp
Why this matters

COEP enforces that all embedded resources opt-in to cross-origin embedding — required for cross-origin isolation features.

Learn more

Cross-Origin-Embedder-Policy: require-corp ensures every embedded resource (script, iframe, image) explicitly allows being loaded cross-origin. Combined with COOP, this enables the cross-origin-isolated context that unlocks SharedArrayBuffer, high-resolution timers, and other powerful APIs.

Source: MDN / web.dev

A+
TLS & Certificates
TLS 1.3, 7 checks passed
PASS
TLS 1.3, 7 checks passed
Info::
TLS 1.3 is used
Got: TLS 1.3
Info::
Strong cipher suite is used
Got: TLS_AES_128_GCM_SHA256
Info::
HTTP/2 is not negotiated
HTTP/2 provides multiplexing and header compression for better performance.
Got: http/1.1
Info::
Certificate is valid (expires in 41 days)
Got: 2026-06-03T15:10:52Z
Info::
Certificate chain has 2 certificates
Info::
Certificate uses modern signature algorithm
Got: ECDSA-SHA384
Info::
Certificate covers 2 domain(s)
Got: *.trezor.io, trezor.io
Info::
Certificate is issued by a trusted CA
Got: CN=E8,O=Let's Encrypt,C=US

HTTP/2 provides multiplexing and header compression for better performance.

Why this matters

HTTP/1.1 forces the browser to make sequential requests, multiplying latency on every page.

Learn more

HTTP/2 (and HTTP/3) multiplex many requests over a single connection, eliminating head-of-line blocking. HTTP/1.1 forces the browser to either queue requests or open many parallel connections — both worse. Most modern web servers support HTTP/2 with one config line.

Source: MDN Web Docs

Connection
Protocol
TLS 1.3
Cipher Suite
TLS_AES_128_GCM_SHA256
HTTP Version
HTTP/1.1

Certificate Chain

Leaf Certificate
Subject CN=trezor.ioIssuer CN=E8,O=Let's Encrypt,C=USValid 2026-03-05T15:10:53Z → 2026-06-03T15:10:52ZExpires in 41 days SANs *.trezor.io, trezor.ioSignature ECDSA-SHA384Serial 5f50992c599f0e2334082e214ffe48502c1
Intermediate (CA Certificate)
Subject CN=E8,O=Let's Encrypt,C=USIssuer CN=ISRG Root X1,O=Internet Security Research Group,C=USValid 2024-03-13T00:00:00Z → 2027-03-12T23:59:59ZExpires in 324 days Signature SHA256-RSASerial 63959363c24e7082715918bfc3d7ed56
A+
Cookie Security
No cookies set — no cookie security risks
PASS
No cookies set — no cookie security risks
Info::
No cookies set — no cookie security risks

No cookies detected — no cookie security risks to report.

A+
Subresource Integrity
No external resources
PASS
No external resources
Info::
No external resources to protect
SRI Coverage No external resources — SRI not applicable
A+
JS Library Vulnerabilities
No known vulnerabilities
PASS
No known vulnerabilities
Info::
No known JavaScript library vulnerabilities detected

No known JavaScript library vulnerabilities detected.

A+
Information Leakage
No exposures
PASS
No exposures
Info::
security.txt is present — good practice
Info::
No sensitive files exposed

No sensitive files exposed — all paths returned 404.

PathStatusCategoryRisk
/.git/HEAD Not foundVersion Control
/.git/config Not foundVersion Control
/.svn/entries Not foundVersion Control
/.env Not foundConfiguration
/.env.local Not foundConfiguration
/.env.production Not foundConfiguration
/wp-config.php Not foundConfiguration
/.htaccess Not foundConfiguration
/phpinfo.php Not foundDebug
/server-status Not foundDebug
/server-info Not foundDebug
/.well-known/security.txt ExposedSecurity PolicyInfo
A+
Email Security
DMARC: reject
PASS
DMARC: reject
Info::
DMARC policy is reject — strongest protection
DMARC
Policy reject — strongest protection Record v=DMARC1; p=reject; rua=mailto:06b6370b8ec49e557257d38fd38e03-d@dmarc.report-uri.com
A
Transport Security
HTTP/3, HSTS, and TLS version analysis
PASS
HTTP/3, HSTS, and TLS version analysis
Info::
HTTP/3 (QUIC) not advertised
HTTP/3 eliminates head-of-line blocking. If your CDN supports it, consider enabling it.
Info::
HSTS enabled (includeSubDomains, preload)
Info::
HSTS preload enabled
Info::
TLS 1.3 in use (fastest handshake, 1-RTT)
All checks on this page are automated. Results are estimates - run targeted manual reviews when the score affects a release decision.

Send Feedback