| 1. General Results, most used to calculate the result |
A | name "open.spotify.com" is subdomain, public suffix is ".com", top-level-domain is ".com", top-level-domain-type is "generic", tld-manager is "VeriSign Global Registry Services", num .com-domains preloaded: 103088 (complete: 263653)
|
A | Good: All ip addresses are public addresses
|
A | Good: Minimal 2 ip addresses per domain name found: open.spotify.com has 2 different ip addresses (authoritative).
|
A | Good: Ipv4 and Ipv6 addresses per domain name found: open.spotify.com has 1 ipv4, 1 ipv6 addresses
|
A | Good: No asked Authoritative Name Server had a timeout
|
A | DNS: "Name Error" means: No www-dns-entry defined. This isn't a problem
|
A | Good: destination is https
|
A | Good - only one version with Http-Status 200
|
A | Good: one preferred version: non-www is preferred
|
A | Good: No cookie sent via http.
|
A | Good: every cookie sent via https is marked as secure
|
A | Good: Every cookie has a SameSite Attribute with a correct value Strict/Lax/None
|
| HSTS-Preload-Status: unknown. Domain never included in the Preload-list. Check https://hstspreload.org/ to learn some basics about the Google-Preload-List.
|
A | Good: All urls with http status 200/404 have a complete Content-Type header (MediaType / MediaSubType + correct charset)
|
A | http://open.spotify.com/playlist/37i9dQZEVXcI8lg5oSiuaB 146.75.123.42
| https://open.spotify.com/playlist/37i9dQZEVXcI8lg5oSiuaB
| Correct redirect http - https with the same domain name
|
A | http://open.spotify.com/playlist/37i9dQZEVXcI8lg5oSiuaB 2a04:4e42:8e::810
| https://open.spotify.com/playlist/37i9dQZEVXcI8lg5oSiuaB
| Correct redirect http - https with the same domain name
|
M | https://146.75.123.42/playlist/37i9dQZEVXcI8lg5oSiuaB 146.75.123.42
|
| Misconfiguration - main pages should never send http status 400 - 499
|
M | https://[2a04:4e42:008e:0000:0000:0000:0000:0810]/playlist/37i9dQZEVXcI8lg5oSiuaB 2a04:4e42:8e::810
|
| Misconfiguration - main pages should never send http status 400 - 499
|
N | https://146.75.123.42/playlist/37i9dQZEVXcI8lg5oSiuaB 146.75.123.42
|
| Error - Certificate isn't trusted, RemoteCertificateNameMismatch
|
N | https://[2a04:4e42:008e:0000:0000:0000:0000:0810]/playlist/37i9dQZEVXcI8lg5oSiuaB 2a04:4e42:8e::810
|
| Error - Certificate isn't trusted, RemoteCertificateNameMismatch
|
A | Good: More then one ip address per domain name found, checking all ip addresses the same http status and the same certificate found: Domain open.spotify.com, 2 ip addresses.
|
| Info: Checking all ip addresses of that domain without sending the hostname only one certificate found. Checking all ip addresses and sending the hostname only one certificate found. Both certificates are different. So that domain requires Server Name Indication (SNI), so the server is able to select the correct certificate.: Domain open.spotify.com, 2 ip addresses.
|
B | No _mta-sts TXT record found (mta-sts: Mail Transfer Agent Strict Transport Security - see RFC 8461). Read the result of server-daten.de (Url-Checks, Comments, Connections and DomainServiceRecords) to see a complete definition. Domainname: _mta-sts.open.spotify.com
|
| 2. Header-Checks |
A | open.spotify.com 146.75.123.42
| Content-Security-Policy
| Ok: Header without syntax errors found: script-src 'self' 'unsafe-eval' blob: open.spotifycdn.com open-exp.spotifycdn.com open-review.spotifycdn.com open-exp-review.spotifycdn.com quicksilver.scdn.co www.google-analytics.com www.googletagmanager.com static.ads-twitter.com analytics.twitter.com s.pinimg.com sc-static.net https://www.google.com/recaptcha/ cdn.ravenjs.com connect.facebook.net www.gstatic.com sb.scorecardresearch.com pixel-static.spotify.com cdn.cookielaw.org geolocation.onetrust.com www.googleoptimize.com www.fastly-insights.com static.hotjar.com script.hotjar.com https://www.googleadservices.com/pagead/conversion_async.js https://www.googleadservices.com/pagead/conversion/ https://analytics.tiktok.com/i18n/pixel/sdk.js https://analytics.tiktok.com/i18n/pixel/identify.js https://analytics.tiktok.com/i18n/pixel/config.js https://www.redditstatic.com/ads/pixel.js https://t.contentsquare.net/uxa/22f14577e19f3.js https://get.microsoft.com/badge/ms-store-badge.bundled.js 'sha256-WfsTi7oVogdF9vq5d14s2birjvCglqWF842fyHhzoNw=' 'sha256-KRzjHxCdT8icNaDOqPBdY0AlKiIh5F8r4bnbe1PQwss=' 'sha256-Z5wh7XXSBR1+mTxLSPFhywCZJt77+uP1GikAgPIsu2s='; frame-ancestors 'self' https://adgen-dev.spotify.com/account/*/ad/*/details https://adgen-dev.spotify.com/preview/* https://local.spotify.net/account/*/ad/*/details https://local.spotify.net/preview/*;
|
F |
|
| Bad: Missing default-src directive. A default-src directive is used if one of the specialized fetch directives (child-src, connect-src, font-src, frame-src, img-src, manifest-src, media-src, object-src, prefetch-src, script-src, style-src, worker-src) isn't defined. Missing default-src, all sources are allowed, that's bad. A default-src with 'none' or 'self' blocks that.
|
E |
|
| Bad: No form-action directive found. Use one to limit the form - action - destinations. form-action is a navigation-directive, so default-src isn't used.
|
A |
|
| Good: frame-ancestors directive found. That limits pages who are allowed to use this page in a frame / iframe / object / embed / applet. frame-ancestors is a navigation-directive, so default-src isn't used.
|
E |
|
| Bad: No base-uri directive found. Use one to limit the URLs which can be used in a document's <base> element. Because it's a document directive, default-src isn't used, so an own directive is required.
|
F |
|
| Critical: No object-src and no default-src as fallback defined. So object / embed / applet can load every resource. That's fatal.
|
F |
|
| Critical: script-src with 'unsafe-inline' or 'unsafe-eval' and without a nonce found. That's dangerous, don't use it. If you really need one of these unsafe directives, add a nonce.
|
F |
|
| Critical: script-src with * or a scheme found. Never allow wildcard - sources.
|
A |
|
| Good: script-src without data: schema found. Why is this important? The data: schema allows hidden code injection. Insert <script src='data:application/javascript;base64,YWxlcnQoJ1hTUycpOw=='></script> in your page and see what happens.
|
A |
| X-Content-Type-Options
| Ok: Header without syntax errors found: nosniff
|
A | open.spotify.com 2a04:4e42:8e::810
| Content-Security-Policy
| Ok: Header without syntax errors found: script-src 'self' 'unsafe-eval' blob: open.spotifycdn.com open-exp.spotifycdn.com open-review.spotifycdn.com open-exp-review.spotifycdn.com quicksilver.scdn.co www.google-analytics.com www.googletagmanager.com static.ads-twitter.com analytics.twitter.com s.pinimg.com sc-static.net https://www.google.com/recaptcha/ cdn.ravenjs.com connect.facebook.net www.gstatic.com sb.scorecardresearch.com pixel-static.spotify.com cdn.cookielaw.org geolocation.onetrust.com www.googleoptimize.com www.fastly-insights.com static.hotjar.com script.hotjar.com https://www.googleadservices.com/pagead/conversion_async.js https://www.googleadservices.com/pagead/conversion/ https://analytics.tiktok.com/i18n/pixel/sdk.js https://analytics.tiktok.com/i18n/pixel/identify.js https://analytics.tiktok.com/i18n/pixel/config.js https://www.redditstatic.com/ads/pixel.js https://t.contentsquare.net/uxa/22f14577e19f3.js https://get.microsoft.com/badge/ms-store-badge.bundled.js 'sha256-WfsTi7oVogdF9vq5d14s2birjvCglqWF842fyHhzoNw=' 'sha256-KRzjHxCdT8icNaDOqPBdY0AlKiIh5F8r4bnbe1PQwss=' 'sha256-Z5wh7XXSBR1+mTxLSPFhywCZJt77+uP1GikAgPIsu2s='; frame-ancestors 'self' https://adgen-dev.spotify.com/account/*/ad/*/details https://adgen-dev.spotify.com/preview/* https://local.spotify.net/account/*/ad/*/details https://local.spotify.net/preview/*;
|
F |
|
| Bad: Missing default-src directive. A default-src directive is used if one of the specialized fetch directives (child-src, connect-src, font-src, frame-src, img-src, manifest-src, media-src, object-src, prefetch-src, script-src, style-src, worker-src) isn't defined. Missing default-src, all sources are allowed, that's bad. A default-src with 'none' or 'self' blocks that.
|
E |
|
| Bad: No form-action directive found. Use one to limit the form - action - destinations. form-action is a navigation-directive, so default-src isn't used.
|
A |
|
| Good: frame-ancestors directive found. That limits pages who are allowed to use this page in a frame / iframe / object / embed / applet. frame-ancestors is a navigation-directive, so default-src isn't used.
|
E |
|
| Bad: No base-uri directive found. Use one to limit the URLs which can be used in a document's <base> element. Because it's a document directive, default-src isn't used, so an own directive is required.
|
F |
|
| Critical: No object-src and no default-src as fallback defined. So object / embed / applet can load every resource. That's fatal.
|
F |
|
| Critical: script-src with 'unsafe-inline' or 'unsafe-eval' and without a nonce found. That's dangerous, don't use it. If you really need one of these unsafe directives, add a nonce.
|
F |
|
| Critical: script-src with * or a scheme found. Never allow wildcard - sources.
|
A |
|
| Good: script-src without data: schema found. Why is this important? The data: schema allows hidden code injection. Insert <script src='data:application/javascript;base64,YWxlcnQoJ1hTUycpOw=='></script> in your page and see what happens.
|
A |
| X-Content-Type-Options
| Ok: Header without syntax errors found: nosniff
|
F | open.spotify.com 146.75.123.42
| Referrer-Policy
| Critical: Missing Header:
|
F | open.spotify.com 146.75.123.42
| Permissions-Policy
| Critical: Missing Header:
|
B | open.spotify.com 146.75.123.42
| Cross-Origin-Embedder-Policy
| Info: Missing Header
|
B | open.spotify.com 146.75.123.42
| Cross-Origin-Opener-Policy
| Info: Missing Header
|
B | open.spotify.com 146.75.123.42
| Cross-Origin-Resource-Policy
| Info: Missing Header
|
F | open.spotify.com 2a04:4e42:8e::810
| Referrer-Policy
| Critical: Missing Header:
|
F | open.spotify.com 2a04:4e42:8e::810
| Permissions-Policy
| Critical: Missing Header:
|
B | open.spotify.com 2a04:4e42:8e::810
| Cross-Origin-Embedder-Policy
| Info: Missing Header
|
B | open.spotify.com 2a04:4e42:8e::810
| Cross-Origin-Opener-Policy
| Info: Missing Header
|
B | open.spotify.com 2a04:4e42:8e::810
| Cross-Origin-Resource-Policy
| Info: Missing Header
|
| 3. DNS- and NameServer - Checks |
A | Info:: 17 Root-climbing DNS Queries required to find all IPv4- and IPv6-Addresses of 5 Name Servers.
|
A | Info:: 17 Queries complete, 17 with IPv6, 0 with IPv4.
|
A | Good: All DNS Queries done via IPv6.
|
| Ok (4 - 8):: An average of 3.4 queries per domain name server required to find all ip addresses of all name servers.
|
A | Info:: 5 different Name Servers found: dns1.p07.nsone.net, ns-cloud-a1.googledomains.com, ns-cloud-a2.googledomains.com, ns-cloud-a3.googledomains.com, ns-cloud-a4.googledomains.com, 5 Name Servers included in Delegation: dns1.p07.nsone.net, ns-cloud-a1.googledomains.com, ns-cloud-a2.googledomains.com, ns-cloud-a3.googledomains.com, ns-cloud-a4.googledomains.com, 5 Name Servers included in 1 Zone definitions: dns1.p07.nsone.net, ns-cloud-a1.googledomains.com, ns-cloud-a2.googledomains.com, ns-cloud-a3.googledomains.com, ns-cloud-a4.googledomains.com, 2 Name Servers listed in SOA.Primary: dns1.p07.nsone.net, ns-cloud-a1.googledomains.com.
|
| Error: Different SOA.Primary Name Servers found, different SOA Definitions.: dns1.p07.nsone.net,ns-cloud-a1.googledomains.com.
|
A | Good: SOA.Primary Name Server included in the delegation set.: dns1.p07.nsone.net,ns-cloud-a1.googledomains.com.
|
A | Good: All Name Server Domain Names have a Public Suffix.
|
A | Good: All Name Server Domain Names ending with a Public Suffix have minimal one IPv4- or IPv6 address.
|
A | Good: All Name Server ip addresses are public.
|
A | Info: Ipv4-Subnet-list: 5 Name Servers, 2 different subnets (first Byte): 198., 216., 2 different subnets (first two Bytes): 198.51., 216.239., 5 different subnets (first three Bytes): 198.51.44., 216.239.32., 216.239.34., 216.239.36., 216.239.38.
|
A | Good: Name Server IPv4-addresses from different subnet found:
|
A | Info: IPv6-Subnet-list: 5 Name Servers with IPv6, 2 different subnets (first block): 2001:, 2620:, 2 different subnets (first two blocks): 2001:4860:, 2620:004d:, 2 different subnets (first three blocks): 2001:4860:4802:, 2620:004d:4000:, 5 different subnets (first four blocks): 2001:4860:4802:0032:, 2001:4860:4802:0034:, 2001:4860:4802:0036:, 2001:4860:4802:0038:, 2620:004d:4000:6259:
|
A | Good: Name Server IPv6 addresses from different subnets found.
|
A | Good: Nameserver supports TCP connections: 10 good Nameserver
|
A | Good: Nameserver supports Echo Capitalization: 10 good Nameserver
|
A | Good: Nameserver supports EDNS with max. 512 Byte Udp payload, message is smaller: 10 good Nameserver
|
A | Good: All SOA have the same Serial Number
|
A | Good: CAA entries found, creating certificate is limited: certainly.com is allowed to create certificates
|
A | Good: CAA entries found, creating certificate is limited: globalsign.com is allowed to create certificates
|
A | Good: CAA entries found, creating certificate is limited: letsencrypt.org is allowed to create certificates
|
| Warning: Unknown CAA found: certainly.com isn't defined. Unknown entry. May be wrong written, may be not longer valid. May be a missing entry in this tool.
|
| 4. Content- and Performance-critical Checks |
A | Good: All checks /.well-known/acme-challenge/random-filename without redirects answer with the expected http status 404 - Not Found. Creating a Letsencrypt certificate via http-01 challenge should work. If it doesn't work: Check your vHost configuration (apachectl -S, httpd -S, nginx -T). Every combination of port and ServerName / ServerAlias (Apache) or Server (Nginx) must be unique. Merge duplicated entries in one vHost. If you use an IIS, extensionless files must be allowed in the /.well-known/acme-challenge subdirectory. Create a web.config in that directory. Content: <configuration><system.webServer><staticContent><mimeMap fileExtension="." mimeType="text/plain" /></staticContent></system.webServer></configuration>. If you have a redirect http ⇒ https, that's ok, Letsencrypt follows such redirects to port 80 / 443 (same or other server). There must be a certificate. But the certificate may be expired, self signed or with a not matching domain name. Checking the validation file Letsencrypt ignores such certificate errors. Trouble creating a certificate? Use https://community.letsencrypt.org/ to ask.
|
A | Good: Every https result with status 200 and greater 1024 Bytes is compressed (gzip, deflate, br checked).
|
A | Good: Every https result with status 200 has a minified Html-Content with a quota lower then 110 %.
|
A | Good: Every https connection via port 443 supports the http/2 protocol via ALPN.
|
A | Info: No img element found, no alt attribute checked
|
A | Good: Domainname is not on the "Specially Designated Nationals And Blocked Persons List" (SDN). That's an US-list of individuals and companies owned or controlled by, or acting for or on behalf of, targeted countries. It also lists individuals, groups, and entities, such as terrorists and narcotics traffickers designated under programs that are not country-specific. Collectively, such individuals and companies are called "Specially Designated Nationals" or "SDNs." Their assets are blocked and U.S. persons are generally prohibited from dealing with them. So if a domain name is on that list, it's impossible to create a Letsencrypt certificate with that domain name. Check the list manual - https://www.treasury.gov/resource-center/sanctions/sdn-list/pages/default.aspx
|
| https://open.spotify.com/.well-known/acme-challenge/check-your-website-dot-server-daten-dot-de
| 3.383 seconds
| Warning: 404 needs more then one second
|
A | Info: Different Server-Headers found
|
A | Duration: 231610 milliseconds, 231.610 seconds
|