Skip to content
Back to HTTP Security Headers

HTTP Security Headers

live.com

live.com has 5 of 10 security headers correctly configured, most notably X-Frame-Options — solid but with room to tighten the warnings flagged below.

200 https://live.com/
5 present 0 missing (critical) 1 missing (recommended)
HeaderValueNote
Content-Security-Policydefault-src *.res.office365.com *.fluidpreview.office.net...Prevents XSS and injection attacks
Strict-Transport-Securitymax-age=31536000; includeSubDomainsForces HTTPS connections
X-Frame-OptionsNot setPrevents clickjacking
X-Content-Type-OptionsnosniffPrevents MIME sniffing
Referrer-Policystrict-originControls referrer information
Permissions-PolicyNot setControls browser features
X-XSS-ProtectionNot setLegacy XSS filter (deprecated)
Cross-Origin-Opener-Policysame-origin-allow-popupsIsolates browsing context
Cross-Origin-Embedder-PolicyNot setControls cross-origin embedding
Cross-Origin-Resource-PolicyNot setControls cross-origin resources

Content-Security-Policy Details

connect-src blob: data: *.res.office365.com *.fluidpreview.office.net *.cdn.office.net *.df.onecdn.static.microsoft *.public.onecdn.static.microsoft *.services.web.outlook.com login.live.com login.microsoftonline.com spoprod-a.akamaihd.net shellprod.msocdn.com *.bing.com *.office.net *.office.com *.office365.com *.officeapps.live.com *.skype.com *.skypeassets.com *.onedrive.com onedrive.cloud.microsoft my.microsoftpersonalcontent.com browser.pipe.aria.microsoft.com *.gateway.messenger.live.com dev.virtualearth.net *.trouter.skype.com *.trouter.io wss://*.trouter.skype.com wss://*.trouter.skype.com:443 wss://*.trouter.io:443 media.licdn.com *.facebook.com onerm.olsvc.com *.qas.binginternal.com *.qas.bing.net wss://*.qas.bing.net:443 wss://*.platform.bing.com wss://*.botframework.com:443 wss://augloop.office.com wss://*.augloop.office.com outlook.live.com graph.microsoft.com *.graph.microsoft.com *.office.microsoft.com api.box.com api.dropboxapi.com *.users.storage.live.com www.onenote.com *.storage.msn.com wss://*.pushd.svc.ms wss://*.pushs.svc.ms wss://*.pushb.svc.ms wss://*.pushp.svc.ms wss://*.svc.ms pptservicescast.officeapps.live.com *.sharepoint-df.com *.sharepoint.com wss://*.delve.office.com:443 wss://*.loki.delve.office.com:443 wss://*.loki.delve.office.com *.delve.office.com *.loki.delve.office.com web.vortex.data.microsoft.com *.events.data.microsoft.com *.online.lync.com *.infra.lync.com wss://*.cortana.ai *.cortana.ai fs.microsoft.com newspro.microsoft.com api.aadrm.com config.edge.skype.com content.lifecycle.office.net *.cp.microsoft.com *.mp.microsoft.com *.m365.microsoft.com *.payments.microsoft.com *.account.microsoft.com checkout.office.com smbpurchase.omex.office.net commerceapi.office.net commercemgmt.m365.microsoft.com checkout.microsoft365.com officeclient.microsoft.com editor.svc.cloud.microsoft *.clarity.ms 'self' attachment.outlook.live.net *.adnxs.com api.taboola.com api.msn.com ris.api.iris.microsoft.com srtb.msn.com *.engage.cloud.microsoft wss://augloop-gcc.office.com wss://*.augloop-gcc.office.com wss://augloop.svc.cloud.microsoft wss://*.augloop.svc.cloud.microsoft aesir.office.com *.oscs.protection.outlook.com *.safelinks.protection.outlook.com safelinks.protection.outlook.com arc.msn.com arc-emea.msn.com fd.api.iris.microsoft.com *.dynamics.com *.mos.microsoft.com ris.api.iris.microsoft.com eudb.ris.api.iris.microsoft.com services.bingapis.com prod-autodetect.outlookmobile.com prod.autodetect.outlook.cloud.microsoft *.googleapis.com admin.microsoft.com *.bpa.microsoft.com teams.cloud.microsoft api.tenor.com attachment.outlook.live.net *.msedge.net app.whiteboard.microsoft.com whiteboard.office.com whiteboard.cloud.microsoft outlook.cloud.microsoft identity.osi.office.net wss://substrate.office.com *.adnxs.com wss://*.trouter.teams.microsoft.com api.flow.microsoft.com *.sharepoint.de proxy.uet.s.microsoft.com rtb.linkedin.com bat.bing.net 3pidentity.svc.cloud.microsoft
frame-ancestors 'self' teams.microsoft.com
media-src blob: data: *.res.office365.com *.cdn.office.net *.df.onecdn.static.microsoft *.public.onecdn.static.microsoft *.sharepoint-df.com *.skype.com *.office.net *.office365.net *.office365-net.us *.office.com 'self' attachment.outlook.live.net *.adnxs.com *.engage.cloud.microsoft attachments.office.net attachments.outlook.usercontent.microsoft attachment.outlook.live.net *.sharepoint.com *.sharepoint.de
report-uri https://cspv2.core.microsoft/report/ec96f066-bd3b-47e3-82c7-01af626dd71a/OutlookWeb-Mail-PROD
img-src * data: blob: filesystem: cid:
object-src *.office.net 'self' blob: attachment.outlook.live.net attachments.office.net attachments.outlook.usercontent.microsoft attachment.outlook.live.net
font-src data: *.res.office365.com *.fluidpreview.office.net *.cdn.office.net *.df.onecdn.static.microsoft *.public.onecdn.static.microsoft spoprod-a.akamaihd.net *.skype.com ms-appx-web: sharepointonline.com *.sharepointonline.com *.delve.office.com fs.microsoft.com static2.sharepointonline.com 'self' *.engage.cloud.microsoft
manifest-src 'self'
child-src 'self' blob: *.office.com
script-src 'nonce-nzY7BcjwHZn9kD5K/jkZyQ==' *.res.office365.com *.fluidpreview.office.net shellprod.msocdn.com amcdn.msauth.net amcdn.msftauth.net *.skype.com *.skypeassets.com *.delve.office.com *.cdn.office.net *.df.onecdn.static.microsoft *.public.onecdn.static.microsoft static.teams.microsoft.com teams.microsoft.com cdn.forms.office.net content.lifecycle.office.net blob: 'report-sample' 'self' 'wasm-unsafe-eval' acdn.adnxs.com cdn.adnxs.com
form-action *.officeapps.live.com *.sharepoint-df.com *.sharepoint.com *.odwebp.svc.ms login.microsoftonline.com m365copilotapp.svc.cloud.microsoft login.live.com *.sharepoint.de login.live.com
frame-src * data: mailto: blob:
upgrade-insecure-requests
default-src *.res.office365.com *.fluidpreview.office.net *.cdn.office.net *.df.onecdn.static.microsoft *.public.onecdn.static.microsoft swx.cdn.skype.com 'self'
style-src *.res.office365.com *.fluidpreview.office.net *.cdn.office.net *.df.onecdn.static.microsoft *.public.onecdn.static.microsoft shellprod.msocdn.com *.skype.com 'self' 'report-sample' 'unsafe-inline' *.engage.cloud.microsoft
base-uri browser.pipe.aria.microsoft.com 'self'
worker-src 'self' blob: *.office.com
require-trusted-types-for 'script'
trusted-types owaTrustedTypesPolicy owa#webpack cdn-url#oneshell safe-xml#oneshell workerScriptTrustedTypesPolicy augloopTrustedTypesPolicy 1DSScriptURL dompurify adaptivecards#deprecatedExportedFunctionPolicy highcharts owaAdsTrustedTypesPolicy @msteams/embed-client @fluidx/loop workerPolicy MeControlScriptURL adaptivecards#markdownPassthroughPolicy fast-html adaptivecards#restoreContentsPolicy @1js/midgard-trusted-types @1js/lpc-common-web#webpack @centro/hvc-loader html2canvas osfRuntimeScriptPolicy yammer-outlook-trusted-types-policy#webpack @azure/ms-rest-js#xml.browser react-virtualized-auto-sizer lit-html officebrowserfeedback#domUtils troubleshootPolicy consolePolicy ori_importmap TrustedTypePolicyFactory workerScriptPolicy iFrameDocumentTrustedTypesPolicy nativePdfPreviewTrustedTypesPolicy workerLoaderTrustedTypesPolicy @1js/search-converged-hostapp-owa-bundle#webpack suiteuxShellTrustedTypesPolicy @azure/core-xml#xml.browser @1js/midgard-bootstrapper#webpack trustedInnerHTMLPolicy domUtilsTrustedTypePolicy dangerouslySetInnerHTMLPolicy overlayScrollbarsTrustedTypesPolicy @msteams/services-io-browser-web-client-update#register-service-worker @fluidx/loop#loop-page-container @fluidx/loop#odsp-driver @fluidx/loop#office-fluid-container @fluidx/loop#sourceless-iframe webpack-dev-server#overlay placesMapWorkerPolicy @fluidx/loop-app-worker-template ori-worker-policy default owaLoopTrustedTypesPolicy owaTeamsClientTrustedTypesPolicy owaMeControlTrustedTypesPolicy ast-policy domPurifyHTML emptyStringPolicyHTML nativeSanitizerTrustedTypesPolicy @fluidx/loop#generic-cdn-codeloader-bundle @fluidx/loop#html-canvas-container wordxmlBypassOfficeAddIns 'allow-duplicates'
Show all response headers (33)
X-Client-Version: 20260807011.11
X-Firsthopcafeefz: AMS
Alt-Svc: h3=":443";ma=2592000,h3-29=":443";ma=2592000
X-Feserver: AS4P189CA0063
Content-Type: text/html
Ms-Cv: aRdaW+wbyfA1/qlegNsMdQ.1
Set-Cookie: ClientId=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/
Set-Cookie: ClientId=0770919AE2FE48B89C5DB01E89983561; expires=Mon, 16 Aug 2027 18:29:59 GMT; path=/; secure; samesite=none
X-Clique: CLEURP189AMS01
Vary: Accept-Encoding
X-Web-Server-Version: 26.8.10.2
Expires: -1
Cross-Origin-Opener-Policy: same-origin-allow-popups
X-Proxy-Routingcorrectness: 1
X-Besku: UNKNOWN
Cache-Control: no-cache
Referrer-Policy: strict-origin
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-App-Name: Mail
X-Backendhttpstatus: 200
Request-Id: 5b5a1769-1bec-f0c9-35fe-a95e80db0c75
Document-Policy: include-js-call-stacks-in-crash-reports
X-Calculatedbetarget: AM7PPFAB8BE49DB.EURP189.PROD.OUTLOOK.COM
Content-Security-Policy: default-src *.res.office365.com *.fluidpreview.office.net *.cdn.office.net *.df.onecdn.static.microsoft *.public.onecdn.static.microsoft swx.cdn.skype.com 'self'; script-src 'nonce-nzY7BcjwHZn9kD5K/jkZyQ==' *.res.office365.com *.fluidpreview.office.net shellprod.msocdn.com amcdn.msauth.net amcdn.msftauth.net *.skype.com *.skypeassets.com *.delve.office.com *.cdn.office.net *.df.onecdn.static.microsoft *.public.onecdn.static.microsoft static.teams.microsoft.com teams.microsoft.com cdn.forms.office.net content.lifecycle.office.net blob: 'report-sample' 'self' 'wasm-unsafe-eval' acdn.adnxs.com cdn.adnxs.com; style-src *.res.office365.com *.fluidpreview.office.net *.cdn.office.net *.df.onecdn.static.microsoft *.public.onecdn.static.microsoft shellprod.msocdn.com *.skype.com 'self' 'report-sample' 'unsafe-inline' *.engage.cloud.microsoft; img-src * data: blob: filesystem: cid:; connect-src blob: data: *.res.office365.com *.fluidpreview.office.net *.cdn.office.net *.df.onecdn.static.microsoft *.public.onecdn.static.microsoft *.services.web.outlook.com login.live.com login.microsoftonline.com spoprod-a.akamaihd.net shellprod.msocdn.com *.bing.com *.office.net *.office.com *.office365.com *.officeapps.live.com *.skype.com *.skypeassets.com *.onedrive.com onedrive.cloud.microsoft my.microsoftpersonalcontent.com browser.pipe.aria.microsoft.com *.gateway.messenger.live.com dev.virtualearth.net *.trouter.skype.com *.trouter.io wss://*.trouter.skype.com wss://*.trouter.skype.com:443 wss://*.trouter.io:443 media.licdn.com *.facebook.com onerm.olsvc.com *.qas.binginternal.com *.qas.bing.net wss://*.qas.bing.net:443 wss://*.platform.bing.com wss://*.botframework.com:443 wss://augloop.office.com wss://*.augloop.office.com outlook.live.com graph.microsoft.com *.graph.microsoft.com *.office.microsoft.com api.box.com api.dropboxapi.com *.users.storage.live.com www.onenote.com *.storage.msn.com wss://*.pushd.svc.ms wss://*.pushs.svc.ms wss://*.pushb.svc.ms wss://*.pushp.svc.ms wss://*.svc.ms pptservicescast.officeapps.live.com *.sharepoint-df.com *.sharepoint.com wss://*.delve.office.com:443 wss://*.loki.delve.office.com:443 wss://*.loki.delve.office.com *.delve.office.com *.loki.delve.office.com web.vortex.data.microsoft.com *.events.data.microsoft.com *.online.lync.com *.infra.lync.com wss://*.cortana.ai *.cortana.ai fs.microsoft.com newspro.microsoft.com api.aadrm.com config.edge.skype.com content.lifecycle.office.net *.cp.microsoft.com *.mp.microsoft.com *.m365.microsoft.com *.payments.microsoft.com *.account.microsoft.com checkout.office.com smbpurchase.omex.office.net commerceapi.office.net commercemgmt.m365.microsoft.com checkout.microsoft365.com officeclient.microsoft.com editor.svc.cloud.microsoft *.clarity.ms 'self' attachment.outlook.live.net *.adnxs.com api.taboola.com api.msn.com ris.api.iris.microsoft.com srtb.msn.com *.engage.cloud.microsoft wss://augloop-gcc.office.com wss://*.augloop-gcc.office.com wss://augloop.svc.cloud.microsoft wss://*.augloop.svc.cloud.microsoft aesir.office.com *.oscs.protection.outlook.com *.safelinks.protection.outlook.com safelinks.protection.outlook.com arc.msn.com arc-emea.msn.com fd.api.iris.microsoft.com *.dynamics.com *.mos.microsoft.com ris.api.iris.microsoft.com eudb.ris.api.iris.microsoft.com services.bingapis.com prod-autodetect.outlookmobile.com prod.autodetect.outlook.cloud.microsoft *.googleapis.com admin.microsoft.com *.bpa.microsoft.com teams.cloud.microsoft api.tenor.com attachment.outlook.live.net *.msedge.net app.whiteboard.microsoft.com whiteboard.office.com whiteboard.cloud.microsoft outlook.cloud.microsoft identity.osi.office.net wss://substrate.office.com *.adnxs.com wss://*.trouter.teams.microsoft.com api.flow.microsoft.com *.sharepoint.de proxy.uet.s.microsoft.com rtb.linkedin.com bat.bing.net 3pidentity.svc.cloud.microsoft; base-uri browser.pipe.aria.microsoft.com 'self'; form-action *.officeapps.live.com *.sharepoint-df.com *.sharepoint.com *.odwebp.svc.ms login.microsoftonline.com m365copilotapp.svc.cloud.microsoft login.live.com *.sharepoint.de login.live.com; object-src *.office.net 'self' blob: attachment.outlook.live.net attachments.office.net attachments.outlook.usercontent.microsoft attachment.outlook.live.net; frame-ancestors 'self' teams.microsoft.com; font-src data: *.res.office365.com *.fluidpreview.office.net *.cdn.office.net *.df.onecdn.static.microsoft *.public.onecdn.static.microsoft spoprod-a.akamaihd.net *.skype.com ms-appx-web: sharepointonline.com *.sharepointonline.com *.delve.office.com fs.microsoft.com static2.sharepointonline.com 'self' *.engage.cloud.microsoft; media-src blob: data: *.res.office365.com *.cdn.office.net *.df.onecdn.static.microsoft *.public.onecdn.static.microsoft *.sharepoint-df.com *.skype.com *.office.net *.office365.net *.office365-net.us *.office.com 'self' attachment.outlook.live.net *.adnxs.com *.engage.cloud.microsoft attachments.office.net attachments.outlook.usercontent.microsoft attachment.outlook.live.net *.sharepoint.com *.sharepoint.de; frame-src * data: mailto: blob:; manifest-src 'self'; worker-src 'self' blob: *.office.com; child-src 'self' blob: *.office.com; require-trusted-types-for 'script'; trusted-types owaTrustedTypesPolicy owa#webpack cdn-url#oneshell safe-xml#oneshell workerScriptTrustedTypesPolicy augloopTrustedTypesPolicy 1DSScriptURL dompurify adaptivecards#deprecatedExportedFunctionPolicy highcharts owaAdsTrustedTypesPolicy @msteams/embed-client @fluidx/loop workerPolicy MeControlScriptURL adaptivecards#markdownPassthroughPolicy fast-html adaptivecards#restoreContentsPolicy @1js/midgard-trusted-types @1js/lpc-common-web#webpack @centro/hvc-loader html2canvas osfRuntimeScriptPolicy yammer-outlook-trusted-types-policy#webpack @azure/ms-rest-js#xml.browser react-virtualized-auto-sizer lit-html officebrowserfeedback#domUtils troubleshootPolicy consolePolicy ori_importmap TrustedTypePolicyFactory workerScriptPolicy iFrameDocumentTrustedTypesPolicy nativePdfPreviewTrustedTypesPolicy workerLoaderTrustedTypesPolicy @1js/search-converged-hostapp-owa-bundle#webpack suiteuxShellTrustedTypesPolicy @azure/core-xml#xml.browser @1js/midgard-bootstrapper#webpack trustedInnerHTMLPolicy domUtilsTrustedTypePolicy dangerouslySetInnerHTMLPolicy overlayScrollbarsTrustedTypesPolicy @msteams/services-io-browser-web-client-update#register-service-worker @fluidx/loop#loop-page-container @fluidx/loop#odsp-driver @fluidx/loop#office-fluid-container @fluidx/loop#sourceless-iframe webpack-dev-server#overlay placesMapWorkerPolicy @fluidx/loop-app-worker-template ori-worker-policy default owaLoopTrustedTypesPolicy owaTeamsClientTrustedTypesPolicy owaMeControlTrustedTypesPolicy ast-policy domPurifyHTML emptyStringPolicyHTML nativeSanitizerTrustedTypesPolicy @fluidx/loop#generic-cdn-codeloader-bundle @fluidx/loop#html-canvas-container wordxmlBypassOfficeAddIns 'allow-duplicates'; report-uri https://cspv2.core.microsoft/report/ec96f066-bd3b-47e3-82c7-01af626dd71a/OutlookWeb-Mail-PROD; upgrade-insecure-requests;
Nel: {"report_to":"NelOfficeUpload1","max_age":7200,"include_subdomains":true,"failure_fraction":0.01,"success_fraction":0.0001}
X-Nanoproxy: 1
Pragma: no-cache
X-Content-Type-Options: nosniff
X-Proxy-Backendserverstatus: 200
Origin-Trial: Apss6avQMrDIaTfgtZghJaQJ5VC/PhuSEosafJ3+aDW1VPwBTFN43bgy2UNZLHt2hChKB1jWn+sAk2g6a9Svaw0AAABteyJvcmlnaW4iOiJodHRwczovL2xpdmUuY29tOjQ0MyIsImZlYXR1cmUiOiJMb25nQW5pbWF0aW9uRnJhbWVUaW1pbmciLCJleHBpcnkiOjE3MTY5NDA3OTksImlzU3ViZG9tYWluIjp0cnVlfQ==
Date: Sun, 16 Aug 2026 18:29:59 GMT
Report-To: {"group":"NelOfficeUpload1","max_age":7200,"endpoints":[{"url":"https://exo.nel.measure.office.net/api/report?TenantId=&FrontEnd=Cafe&DestinationEndpoint=AMS&RemoteIP=51.210.209.0&Environment=MT&HttpStatusFrom=BE&ServiceName=Default.mail&MiraPartnerName="}],"include_subdomains":true}
Server: Microsoft-HTTPAPI/2.0
Link: <https://res.public.onecdn.static.microsoft/>; rel="preconnect"

Want the full picture?

This is just one of 100+ checks BeaverCheck runs in a full website audit.

Run Full Audit →

How we grade the results

Each header receives one of three grades: pass (present with a correct, current-best-practice value), warning (present but with a value that is outdated, insufficient, or contains a known weakness), or critical (missing entirely in a context where it should be set). The weighting reflects real-world impact: missing CSP and HSTS on a production HTTPS site are the most severe findings, while a missing Permissions-Policy on a static marketing page is a warning rather than critical. We do not penalize headers that are intentionally absent for a documented reason — for example, X-Frame-Options is now redundant when a CSP frame-ancestors directive is set, and we credit the CSP path. The scoring also adapts to the response: a 301 redirect that ships only the minimum subset of headers is treated differently from a 200 HTML response that should carry the full set. All grading rules are deterministic and visible in the source repository, and the same evaluator runs across both this free tool and the full audit pipeline so results are consistent either way.

Common findings on real sites

Across thousands of public scans, four patterns repeat. First, missing Content-Security-Policy is the most common critical finding — more than half of audited sites ship no CSP at all, leaving inline scripts and event handlers vulnerable to XSS injection. Second, HSTS is often present but configured weakly: a max-age below six months, missing includeSubDomains, or absent from the preload list — meaning the first visit to a subdomain still happens over plaintext. Third, X-Content-Type-Options: nosniff is missing on a surprising number of API responses, allowing MIME-sniffing attacks where a JSON endpoint is reinterpreted as JavaScript by a malicious referring page. Fourth, Permissions-Policy is the newest header and the least adopted: most sites do not deny access to the 10+ powerful browser APIs even when they never use any of them, leaving an XSS-compromised page free to silently activate the user's microphone or geolocation. A site that passes all four checks ends up in the top 5% of the public scan corpus, which is a much stronger signal than a single header grade in isolation.

How to add the missing headers

Most security headers are one line to add. For Nginx, set them in the server or http block with the add_header directive — for example: add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always. The 'always' parameter is important — without it, Nginx skips the header on non-200 responses, leaving error pages unprotected. For Apache, use Header set inside a Directory or VirtualHost block. For Express.js, the helmet middleware sets the full security-header set with sensible defaults in three lines: install helmet, require it, and add app.use(helmet()) before any route. For Cloudflare, the Transform Rules dashboard exposes every header without redeploying — useful for setting CSP and HSTS on origins you do not control. The trickiest header is Content-Security-Policy: a wrong value breaks the page silently, so always start in report-only mode (Content-Security-Policy-Report-Only) for at least a week before switching to enforcement. Use the report-uri or report-to directive to collect violation reports, fix what your application legitimately needs, then promote to enforcing mode. The CSP details panel in this tool's report breaks each directive out separately so you can see exactly which sources your site allows today.

Why these headers actually matter

Security headers are the lowest-effort, highest-impact defense most sites can deploy — they cost nothing to add and they neutralize entire classes of attack at the browser boundary, before your application code runs. CSP turns XSS from a near-total compromise into a logged violation report you can investigate at leisure. HSTS prevents the SSL-stripping attacks that defeat HTTPS on hostile networks, including the rogue Wi-Fi access points common at conferences and coffee shops. X-Frame-Options and frame-ancestors block clickjacking, where an attacker embeds your authenticated UI in a transparent iframe and tricks users into clicking destructive actions. The Cross-Origin trio (COOP, COEP, CORP) was added specifically to mitigate Spectre and Meltdown speculative-execution side channels — without them, a malicious cross-origin embed can read your tab's memory through timing attacks. Permissions-Policy is the youngest header but arguably the most important: a single XSS bug in a page that explicitly allows camera access lets an attacker turn the user's webcam on without UI feedback. None of this replaces other defenses (input validation, parameterized queries, dependency hygiene), but it does buy enormous defense-in-depth at near-zero implementation cost.

Other reports for live.com

Share this result: