Objective
Verify that HTTP responses implement appropriate browser security controls and do not rely on insecure or unnecessary response-header configurations.
Modern browsers provide security mechanisms that can be configured through HTTP response headers. These controls can reduce risks associated with content injection, framing, MIME-type confusion, insecure transport and other browser-side attack conditions.
This procedure evaluates the headers actually delivered to clients rather than merely checking whether a header exists in server configuration.
A header can be present while still being ineffective, overly permissive, contradictory or incorrectly scoped. Assessment must consider the actual policy value and application requirements.
Scope
Review security headers across:
Prerequisites
| Authorization | Confirm authorization to assess the application's HTTP responses and security configuration. |
|---|---|
| HTTPS endpoint | Identify the canonical HTTPS endpoint and any HTTP-to-HTTPS redirect path. |
| Application architecture | Identify web servers, reverse proxies, CDNs and other components capable of modifying response headers. |
| Browser requirements | Understand application dependencies, supported browsers and legitimate cross-origin requirements before evaluating restrictive policies. |
Methodology
Capture representative HTTP responses and compare the effective security headers against the application's documented security requirements.
| Method | Purpose |
|---|---|
| Response inspection | Determine which security headers are actually delivered to clients. |
| Policy-value review | Determine whether configured values provide meaningful protection. |
| Endpoint comparison | Identify inconsistent security-header configurations between application paths. |
| HTTPS behavior review | Verify transport-related browser controls and redirect behavior. |
| Browser validation | Confirm that applicable browser policies behave as intended without breaking legitimate functionality. |
Test procedure
Header controls
| Control | Review focus |
|---|---|
| Content-Security-Policy | Determine whether the policy meaningfully restricts content sources and reduces relevant browser-side injection risks. |
| Strict-Transport-Security | On HTTPS sites, determine whether HSTS is appropriately configured for the application's deployment model. |
| X-Content-Type-Options | Verify appropriate MIME-sniffing protection for responses where relevant. |
| Referrer-Policy | Verify that referrer information is restricted according to application privacy and security requirements. |
| Frame protection | Evaluate CSP frame-ancestors and/or other applicable controls against the application's legitimate framing requirements. |
| Permissions-Policy | Where applicable, review whether unnecessary browser capabilities are restricted. |
Example response
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Security-Policy: default-src 'self'; object-src 'none'
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Security policies must match the application's architecture. For example, a CSP that blocks legitimate scripts, frames or connections is not automatically a successful security configuration. Test the policy against actual application behavior.
Assessment
| Condition | Assessment consideration |
|---|---|
| Header present and effective | Control may be considered appropriately implemented after validating its policy value and application compatibility. |
| Header absent | Determine whether the missing control creates a material security gap for the application. |
| Weak policy | Determine whether the configuration provides substantially less protection than intended. |
| Inconsistent policy | Investigate security-sensitive endpoints that do not receive the expected baseline. |
| Legacy header only | Determine whether modern equivalent controls should also be implemented. |
Expected result
Applicable browser security controls are delivered consistently to relevant application responses and are configured according to documented security requirements without unnecessarily disrupting legitimate application functionality.
The final assessment should consider the application's architecture rather than treating the absence of a particular header as an automatic vulnerability.
Failure criteria
A production HTTPS application does not deliver the organization's required transport-security policy to its primary web responses. The missing configuration reduces the browser-enforced transport security expected for the application.
Remediation
Establish a centralized HTTP security-header baseline and apply it consistently through the appropriate application, web-server, reverse-proxy or CDN layer.
Recommended approach
- Define the organization's required security-header baseline.
- Identify which headers are applicable to the application's architecture.
- Configure policies at the appropriate deployment layer.
- Avoid duplicate or contradictory header values across application and proxy layers.
- Configure CSP according to actual application dependencies rather than copying an unrelated policy.
- Configure transport security appropriately for HTTPS deployments.
- Configure MIME-type, referrer and framing protections according to application requirements.
- Restrict unnecessary browser capabilities where appropriate.
- Test security-header behavior across normal, authenticated and error responses.
- Include the configuration in deployment controls so it cannot silently disappear during infrastructure changes.
Example baseline
Content-Security-Policy:
default-src 'self';
object-src 'none'
Strict-Transport-Security:
max-age=31536000
X-Content-Type-Options:
nosniff
Referrer-Policy:
strict-origin-when-cross-origin
Permissions-Policy:
[define only required browser capabilities]
The values above are illustrative. WebOTG should document the actual recommended policy separately from this verification procedure and require organizations to adapt policies to their application architecture and security requirements.
Verification
Applicable security-header controls are present, effective and consistently delivered.
A material security-header configuration gap remains in the deployed application.
The effective configuration or browser enforcement could not be adequately verified.
Evidence requirements
Remove cookies, authorization tokens, API keys, internal hostnames and other sensitive values before storing or sharing HTTP captures.
Classification
| WebOTG procedure | WebOTG-SM-014 |
|---|---|
| OWASP category | A02:2025 — Security Misconfiguration |
| Procedure type | HTTP security configuration review |
| Assessment result | PASS / FAIL / NOT TESTED |
| Finding severity | Determine from the missing control, exploitability, affected functionality and resulting security impact. |
WebOTG-SM-014 is a WebOTG-defined verification procedure. The identifier is not an OWASP-defined test identifier.
References
| Source | Relevance |
|---|---|
| OWASP Top 10:2025 — A02 | Security Misconfiguration category. |
| OWASP Web Security Testing Guide | Web application security testing methodology. |
| OWASP Application Security Verification Standard | Verification requirements relevant to secure communication, browser controls and application configuration. |
| HTTP security-header specifications | Authoritative technical definitions and behavior of applicable HTTP security mechanisms. |
| Application security baseline | Organization-specific requirements for response-header configuration. |
WebOTG should maintain official source URLs, source versions and review dates through its content-management system so references can be updated independently of the procedure template.