Security Report Summary
A
Site: https://ryanparman.com/
IP Address: 104.21.48.1
Report Time: 24 Aug 2025 21:55:09 UTC
Headers:
  • Strict-Transport-Security
  • Content-Security-Policy
  • Permissions-Policy
  • Referrer-Policy
  • X-Content-Type-Options
  • X-Frame-Options
Warning: Grade capped at A, please see warnings below.
Advanced:
Great grade! Perform a deeper security analysis of your website and APIs:
Warnings
Content-Security-PolicyThis policy contains 'unsafe-inline' which is dangerous in the script-src directive.
Raw Headers
HTTP/2200
dateSun, 24 Aug 2025 21:55:09 GMT
content-typetext/html; charset=utf-8
content-encodinggzip
cf-ray9746179cde0ef0ee-DUB
cf-cache-statusDYNAMIC
access-control-allow-origin*, https://ryanparman.com
age0
cache-controlmax-age=600
expiresSun, 24 Aug 2025 22:05:09 GMT
last-modifiedFri, 05 Feb 2021 06:18:46 GMT
link<https://cdn.ryanparman.com/hugo/home/[email protected]>; rel=preload; as=image; crossorigin=anonymous; type=image/jpeg, <https://cdn.ryanparman.com/hugo/home/[email protected]>; rel=preload; as=image; crossorigin=anonymous; type=image/webp, <https://cdn.ryanparman.com/hugo/gravatars/current/[email protected]>; rel=preload; as=image; crossorigin=anonymous; type=image/jpeg, <https://cdn.ryanparman.com/hugo/js/modernizr.js.gz>; rel=preload; as=script; crossorigin=anonymous; type=text/javascript
strict-transport-securitymax-age=31536000; includeSubDomains; preload
varyAccept-Encoding, Origin
via1.1 varnish
accept-chDPR, Viewport-Width, Width
accept-ch-lifetime604800
access-control-allow-methodsGET, OPTIONS
content-security-policydefault-src 'self' blob: cdn.ryanparman.com; connect-src 'self' cdn.ryanparman.com embedr.flickr.com; frame-src cdn.ryanparman.com embed.music.apple.com platform.twitter.com syndication.twitter.com www.google.com www.instagram.com www.youtube.com; img-src 'self' 'unsafe-inline' data: cdn.ryanparman.com *.static.flickr.com *.staticflickr.com media.githubusercontent.com pbs.twimg.com platform.twitter.com s3.amazonaws.com stats.g.doubleclick.net syndication.twitter.com web.archive.org www.google-analytics.com www.google.com www.googletagmanager.com www.google.co.in; media-src 'self' blob: ryanparman.com cdn.ryanparman.com *.http.atlas.cdn.yimg.com s3.amazonaws.com www.flickr.com cdn.jsdelivr.net; script-src 'self' 'unsafe-inline' ajax.cloudflare.com cdn.ryanparman.com cdn.jsdelivr.net cdn.syndication.twimg.com embedr.flickr.com gist.github.com platform.twitter.com widgets.flickr.com www.google-analytics.com www.googletagmanager.com www.instagram.com; script-src-elem 'unsafe-inline' cdn.ryanparman.com ajax.cloudflare.com www.googletagmanager.com www.google-analytics.com; style-src 'self' 'unsafe-inline' cdn.ryanparman.com github.githubassets.com platform.twitter.com; font-src 'self' data: cdn.ryanparman.com; style-src-attr 'unsafe-inline'; report-uri https://ryanparman.report-uri.com/r/d/csp/wizard; upgrade-insecure-requests; block-all-mixed-content
cross-origin-embedder-policyrequire-corp
cross-origin-opener-policysame-origin
cross-origin-resource-policysame-site
expect-staplemax-age=31536000; preload; report-uri='https://ryanparman.report-uri.com/r/d/staple/reportOnly'
nel{"report_to":"default","max_age":31536000,"include_subdomains":true}
permissions-policydocument-domain=(self), fullscreen=(self), picture-in-picture=(self), sync-xhr=(self)
referrer-policystrict-origin-when-cross-origin
report-to{"group":"default","max_age":31536000,"endpoints":[{"url":"https://ryanparman.report-uri.com/a/d/g"}],"include_subdomains":true}
timing-allow-originhttps://ryanparman.com
tkN
x-cacheMISS
x-cache-hits0
x-content-type-optionsnosniff
x-fastly-request-id4b7b095da3ea3386688a3a5e3fd91dbd5c53e163
x-frame-optionsDENY
x-github-request-id5F0A:898B8:4C62B:5A12C:68AB8A3C
x-permitted-cross-domain-policiesnone
x-proxy-cacheMISS
x-served-bycache-dub4393-DUB
x-timerS1756072509.993479,VS0,VE100
x-xss-protection1; mode=block
server-timingcfCacheStatus;desc="DYNAMIC"
servercloudflare
alt-svch3=":443"; ma=86400
server-timingcfOrigin;dur=0,cfEdge;dur=165
server-timingcfL4;desc="?proto=TCP&rtt=1124&min_rtt=937&rtt_var=636&sent=6&recv=8&lost=0&retrans=0&sent_bytes=3431&recv_bytes=1349&delivery_rate=2967213&cwnd=249&unsent_bytes=0&cid=95971eea1ce5790b&ts=176&x=0"
Additional Information
access-control-allow-originThe Access-Control-Allow-Origin header is used to configure CORS.
strict-transport-securityHTTP Strict Transport Security is an excellent feature to support on your site and strengthens your implementation of TLS by getting the User Agent to enforce the use of HTTPS.
content-security-policyContent Security Policy is an effective measure to protect your site from XSS attacks. By whitelisting sources of approved content, you can prevent the browser from loading malicious assets. Analyse this policy in more detail.
cross-origin-embedder-policyCross-Origin Embedder Policy allows a site to prevent assets being loaded that do not grant permission to load them via CORS or CORP.
cross-origin-opener-policyCross-Origin Opener Policy allows a site to opt-in to Cross-Origin Isolation in the browser.
cross-origin-resource-policyCross-Origin Resource Policy allows a resource owner to specify who can load the resource.
nelNetwork Error Logging is a new header that instructs the browser to send reports during various network or application errors. You can sign up for a free account on Report URI to collect these reports.
permissions-policyPermissions Policy is a new header that allows a site to control which features and APIs can be used in the browser.
referrer-policyReferrer Policy is a new header that allows a site to control how much information the browser includes with navigations away from a document and should be set by all sites.
report-toReport-To enables the Reporting API. This allows a website to collect reports from the browser about various errors that may occur.
x-content-type-optionsX-Content-Type-Options stops a browser from trying to MIME-sniff the content type and forces it to stick with the declared content-type. The only valid value for this header is "X-Content-Type-Options: nosniff".
x-frame-optionsX-Frame-Options tells the browser whether you want to allow your site to be framed or not. By preventing a browser from framing your site you can defend against attacks like clickjacking.
x-xss-protectionX-XSS-Protection sets the configuration for the XSS Auditor built into older browsers. The recommended value was "X-XSS-Protection: 1; mode=block" but you should now look at Content Security Policy instead.
serverServer value has been changed. Typically you will see values like "Microsoft-IIS/8.0" or "nginx 1.7.2".