Skip to content
FixSecurityHeadersScan a site

github.com

Score 76/100 · Stack Unknown · HTTP 200

Final URL: https://github.com/ · Scanned Wed, 11 Nov 2026 10:17:41 GMT

PCI DSS 4.0 6.4.3 & 11.6.1NIST 800-171 / CMMC L2 SC.L2-3.13.xOWASP ASVS V14.4SOC 2 CC6

Email me this report + alert me when my grade drops

Monitoring is coming soon — we'll let you know when it's live.

Header results

CheckStatusPointsDetails
Strict-Transport-Securitypass20/20Strong HSTS with includeSubDomains and preload.max-age=31536000; includeSubdomains; preload
Content-Security-Policywarn23/25Present but weak: no object-src.
Show value (4368 chars)default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com github.githubassets.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net productionresultssa1.blob.core.windows.net productionresultssa2.blob.core.windows.net productionresultssa3.blob.core.windows.net productionresultssa4.blob.core.windows.net productionresultssa5.blob.core.windows.net productionresultssa6.blob.core.windows.net productionresultssa7.blob.core.windows.net productionresultssa8.blob.core.windows.net productionresultssa9.blob.core.windows.net productionresultssa10.blob.core.windows.net productionresultssa11.blob.core.windows.net productionresultssa12.blob.core.windows.net productionresultssa13.blob.core.windows.net productionresultssa14.blob.core.windows.net productionresultssa15.blob.core.windows.net productionresultssa16.blob.core.windows.net productionresultssa17.blob.core.windows.net productionresultssa18.blob.core.windows.net productionresultssa19.blob.core.windows.net productionresultssa30.blob.core.windows.net productionresultssa31.blob.core.windows.net productionresultssa32.blob.core.windows.net github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com wss://production-copilot-host.webpubsub.azure.com wss://production-copilot-host-centralus.webpubsub.azure.com wss://production-copilot-host-centralus-02.webpubsub.azure.com wss://production-copilot-host-westus.webpubsub.azure.com wss://production-copilot-host-westus3.webpubsub.azure.com wss://production-copilot-host-eastasia.webpubsub.azure.com wss://production-copilot-host-austriaeast.webpubsub.azure.com api.github.com/cmc_internal/api/ edge.fullstory.com rs.fullstory.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com www.youtube-nocookie.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com user-images.githubusercontent.com private-user-images.githubusercontent.com opengraph.githubassets.com repository-images.githubusercontent.com marketplace-screenshots.githubusercontent.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com explore-feed.github.com *.googleusercontent.com objects-origin.githubusercontent.com *.githubusercontent.com images.ctfassets.net/8aevphvgewt8/; manifest-src 'self'; media-src github.com user-images.githubusercontent.com secured-user-images.githubusercontent.com private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com github.githubassets.com assets.ctfassets.net/8aevphvgewt8/ videos.ctfassets.net/8aevphvgewt8/; script-src github.githubassets.com 'sha256-6AKuI+cDd1MoUL1u4eqrA9PXmnPAkOB4h7421hPUUm0='; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
X-Content-Type-Optionspass10/10nosniff is set.nosniff
X-Frame-Options / frame-ancestorspass10/10Protected via CSP frame-ancestors.deny
Referrer-Policypass10/10strict-origin-when-cross-origin is a safe policy.origin-when-cross-origin, strict-origin-when-cross-origin
Permissions-Policyfail0/10Missing. Third-party scripts may access camera, mic, location.
Cross-Origin-Opener-Policywarn0/5Missing. Window is not isolated from cross-origin openers.
Cross-Origin-Resource-Policywarn0/5Missing. Other sites can embed your resources.
Cross-Origin-Embedder-Policyinfo—Not set (informational — only needed for cross-origin isolation).
HTTP → HTTPS redirectpass5/5http:// redirects to https://.
Information-leaking headerspass—No version-revealing headers found.
Deprecated headersinfo—Remove deprecated: x-xss-protection.
Cookie flagswarn-2Cookies missing flags: _octo (no HttpOnly).

Your fixes

We couldn't detect your stack — pick it below.

Copy all — Nginx

Paste into nginx.conf (server block). Run nginx -t, then systemctl reload nginx.

nginx.conf (server block)
# Inside your server { } block
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data: https:; object-src 'none'; base-uri 'self'; frame-ancestors 'none'; form-action 'self'; upgrade-insecure-requests" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=()" always;
add_header Cross-Origin-Opener-Policy "same-origin" always;
add_header Cross-Origin-Resource-Policy "same-origin" always;
  • Always add the always flag so headers are sent on error responses too.
  • add_header in a location block replaces all add_header directives inherited from server — repeat them or use an include file.

Content-Security-Policy

What it does
CSP is an allow-list for where your page may load scripts, styles, images, frames and connections from. It is the strongest defence against cross-site scripting.
Risk if missing
Without a CSP, any injected script (XSS, a compromised third‑party tag, a Magecart skimmer) runs with full access to your users' sessions and payment forms.

Recommended value: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data: https:; object-src 'none'; base-uri 'self'; frame-ancestors 'none'; form-action 'self'; upgrade-insecure-requests

Content-Security-Policy · Nginx
# Inside your server { } block
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data: https:; object-src 'none'; base-uri 'self'; frame-ancestors 'none'; form-action 'self'; upgrade-insecure-requests" always;

Gotchas

  • Deploy as Content-Security-Policy-Report-Only first and watch reports before enforcing.
  • 'unsafe-inline' and 'unsafe-eval' in script-src remove most of the XSS protection. Use nonces or hashes.
  • Analytics, chat widgets and payment iframes need their hosts added explicitly.
  • Only one CSP header should be sent; multiple policies are intersected, which often blocks more than expected.
Full guide: Content-Security-Policy on Nginx

Permissions-Policy

What it does
Permissions-Policy disables powerful browser APIs for your page and any embedded iframes unless you explicitly allow them.
Risk if missing
Injected or third‑party scripts could request camera, microphone, geolocation or payment APIs.

Recommended value: camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=()

Permissions-Policy · Nginx
# Inside your server { } block
add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), interest-cohort=()" always;

Gotchas

  • Allow features you actually use, e.g. payment=(self) for Payment Request checkouts.
Full guide: Permissions-Policy on Nginx

Cross-Origin-Opener-Policy

What it does
COOP puts your page in its own browsing context group so cross-origin windows can't get a handle to it.
Risk if missing
Cross-window attacks (XS-Leaks, tabnabbing) and Spectre-style side channels.

Recommended value: same-origin

Cross-Origin-Opener-Policy · Nginx
# Inside your server { } block
add_header Cross-Origin-Opener-Policy "same-origin" always;

Gotchas

  • OAuth or payment pop-ups that talk back via window.opener may need same-origin-allow-popups.
Full guide: Cross-Origin-Opener-Policy on Nginx

Cross-Origin-Resource-Policy

What it does
CORP tells browsers which origins may embed your images, scripts and other resources.
Risk if missing
Other sites can embed your resources and use side channels to leak data.

Recommended value: same-origin

Cross-Origin-Resource-Policy · Nginx
# Inside your server { } block
add_header Cross-Origin-Resource-Policy "same-origin" always;

Gotchas

  • Public CDNs and assets meant for embedding should use cross-origin.
Full guide: Cross-Origin-Resource-Policy on Nginx

Raw response headers

curl -I https://github.com/
date: Wed, 11 Nov 2026 10:17:31 GMT
etag: W/"69b82aae4d2d7840a05380507b2ad552"
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With, X-GitHub-Client-Version, Accept-Language, Sec-Fetch-Site,Accept-Encoding, Accept, X-Requested-With
server: github.com
content-type: text/html; charset=utf-8
accept-ranges: bytes
cache-control: max-age=0, private, must-revalidate
referrer-policy: origin-when-cross-origin, strict-origin-when-cross-origin
x-frame-options: deny
content-encoding: gzip
content-language: en-US
x-xss-protection: 0
transfer-encoding: chunked
x-github-request-id: F444:1ECBF2:44FE1CC:6032DD9:6AF440C5
x-github-edge-region: fra
x-content-type-options: nosniff
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com github.githubassets.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net productionresultssa1.blob.core.windows.net productionresultssa2.blob.core.windows.net productionresultssa3.blob.core.windows.net productionresultssa4.blob.core.windows.net productionresultssa5.blob.core.windows.net productionresultssa6.blob.core.windows.net productionresultssa7.blob.core.windows.net productionresultssa8.blob.core.windows.net productionresultssa9.blob.core.windows.net productionresultssa10.blob.core.windows.net productionresultssa11.blob.core.windows.net productionresultssa12.blob.core.windows.net productionresultssa13.blob.core.windows.net productionresultssa14.blob.core.windows.net productionresultssa15.blob.core.windows.net productionresultssa16.blob.core.windows.net productionresultssa17.blob.core.windows.net productionresultssa18.blob.core.windows.net productionresultssa19.blob.core.windows.net productionresultssa30.blob.core.windows.net productionresultssa31.blob.core.windows.net productionresultssa32.blob.core.windows.net github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com wss://production-copilot-host.webpubsub.azure.com wss://production-copilot-host-centralus.webpubsub.azure.com wss://production-copilot-host-centralus-02.webpubsub.azure.com wss://production-copilot-host-westus.webpubsub.azure.com wss://production-copilot-host-westus3.webpubsub.azure.com wss://production-copilot-host-eastasia.webpubsub.azure.com wss://production-copilot-host-austriaeast.webpubsub.azure.com api.github.com/cmc_internal/api/ edge.fullstory.com rs.fullstory.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com www.youtube-nocookie.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com user-images.githubusercontent.com private-user-images.githubusercontent.com opengraph.githubassets.com repository-images.githubusercontent.com marketplace-screenshots.githubusercontent.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com explore-feed.github.com *.googleusercontent.com objects-origin.githubusercontent.com *.githubusercontent.com images.ctfassets.net/8aevphvgewt8/; manifest-src 'self'; media-src github.com user-images.githubusercontent.com secured-user-images.githubusercontent.com private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com github.githubassets.com assets.ctfassets.net/8aevphvgewt8/ videos.ctfassets.net/8aevphvgewt8/; script-src github.githubassets.com 'sha256-6AKuI+cDd1MoUL1u4eqrA9PXmnPAkOB4h7421hPUUm0='; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
strict-transport-security: max-age=31536000; includeSubdomains; preload
set-cookie: _gh_sess=6zEA5mucA7GuY5CZ%2BcERJ4H46H83XQ9%2BHIdlNv8I8MEoVW9tegS5%2B0bH%2Ffcuz6I4Rbpq0e1uBWzkkMLTnSrzj6jtt%2BZMPmDrMtvAVPo73tBdvgR%2BwjYwczTRTxLEGmz1%2B7LBUaRDgpcNGWScuoYDixFDjmz2NyE6KdFYCYdUNJTRmtzgJcLpKzSpeRWUbYzKbb21rXjFhwwj%2FaW9XVzC4bWtGS0LaxebZgQmXPuaBJHN9mWK13fJQqmy0nWd8k1IkDrGeUt%2Fbv951CwkdIqNNA%3D%3D--FjcYB2tsxtZ%2B6fSx--oSdTs%2Fb2NFZcIYMrp3bd9Q%3D%3D; path=/; HttpOnly; secure; SameSite=Lax
set-cookie: _octo=GH1.1.293546743.1794392261; expires=Thu, 11 Nov 2027 10:17:41 GMT; domain=.github.com; path=/; secure; SameSite=Lax
set-cookie: logged_in=no; expires=Thu, 11 Nov 2027 10:17:41 GMT; domain=.github.com; path=/; HttpOnly; secure; SameSite=Lax