Objective
Verify that HTTP responses implement security headers appropriate to the application's architecture, content model and threat environment, and that those headers do not contain configurations that materially weaken browser security controls.
Security headers allow an application to communicate security policies to user agents. Depending on the application, these policies can control content execution, framing, transport security, referrer information, browser capabilities and cross-origin behavior.
Header assessment must be contextual. The absence of a particular header does not automatically constitute a vulnerability. The tester should establish whether the control is applicable and whether its absence or misconfiguration creates a meaningful security weakness.
A scanner may report a missing header, but the final assessment must consider the application's actual behavior, browser exposure, content types and applicable security requirements.
Scope
Review security-relevant HTTP responses including:
Prerequisites
| Authorization | Confirm authorization to inspect and test the target web application. |
|---|---|
| Application architecture | Understand whether the application uses HTML, APIs, embedded resources, frames, third-party content or cross-origin integrations. |
| Browser model | Identify whether browser-enforced controls are relevant to the tested application. |
| Transport | Determine whether the application is expected to operate exclusively over HTTPS. |
Methodology
Capture representative HTTP responses and evaluate the security headers against the application's documented security requirements.
| Review | Purpose |
|---|---|
| Header presence | Determine whether applicable security controls are communicated to the browser. |
| Header value | Determine whether the configured policy provides the intended protection. |
| Scope | Determine whether the policy applies to the intended resources and origins. |
| Conflicts | Identify contradictory headers or configurations. |
| Response consistency | Determine whether important responses unexpectedly omit required controls. |
Test procedure
Security header review
Controls permitted content sources and browser-executable resources.
Review especially where the application renders user-controlled or third-party content.
Instructs supporting browsers to use HTTPS for the protected origin.
Review deployment over HTTPS and the intended transport policy.
Prevents certain MIME-type sniffing behavior.
Verify the configured value is appropriate for the application.
Controls which origins may embed protected resources when supported by the browser.
Review applications where framing could create a meaningful security risk.
Controls the amount of referrer information sent with requests.
Consider whether URLs contain sensitive information.
Controls access to selected browser features and capabilities.
Configure only the capabilities required by the application.
Example response review
HTTP/1.1 200 OK
Content-Type: text/html
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
<html>
...
</html>
A header can be present and still provide insufficient protection. Review the actual directives, values, scope and interaction with the application's content and trust model.
Assessment
| Condition | Assessment consideration |
|---|---|
| Applicable header present and correctly configured | Normally passes the header-specific review. |
| Header absent | Determine whether the control is applicable and whether its absence creates meaningful risk. |
| Header present but weak | Assess whether the effective policy can be materially bypassed or weakened. |
| Header inconsistent | Determine whether sensitive routes lack controls that are present elsewhere. |
| Policy breaks functionality | Verify whether the policy can be tightened without unnecessarily weakening security. |
Expected result
Applicable browser security controls are explicitly configured according to the application's security requirements, with policies sufficiently restrictive to provide their intended protection without unnecessary exceptions.
Security-sensitive responses should not unexpectedly bypass the application's intended browser security policy because of alternate routes, redirects, proxy configurations or application-specific response handlers.
Failure criteria
A sensitive application response does not enforce an applicable browser security policy, while equivalent protected responses do. The inconsistent configuration creates a security boundary that differs from the application's intended policy.
Remediation
Define security headers centrally where possible and ensure the resulting policies are applied consistently to all applicable responses.
Recommended approach
- Identify which browser security controls are applicable to the application.
- Establish a documented baseline for required headers and policy values.
- Configure policies at the appropriate application, web-server, gateway or reverse-proxy layer.
- Remove unnecessarily broad policy exceptions.
- Avoid unsafe or unnecessarily permissive content sources where a stricter policy is feasible.
- Ensure HTTPS-only applications enforce the intended transport policy.
- Ensure security-sensitive routes inherit or explicitly implement the required controls.
- Review third-party integrations before allowing them through browser security policies.
- Test policy changes in a controlled environment before production deployment.
- Re-test representative responses after every relevant infrastructure or application configuration change.
Example baseline
Strict-Transport-Security:
<organization-defined HTTPS policy>
X-Content-Type-Options:
nosniff
Referrer-Policy:
<organization-defined referrer policy>
Content-Security-Policy:
<application-specific policy>
Permissions-Policy:
<application-specific capability policy>
Content Security Policy is application-specific. A copied policy can either provide insufficient protection or break legitimate functionality. Build the policy from the application's actual resource and trust requirements.
Verification
Applicable security headers are present, correctly configured and consistently applied.
A material security weakness remains in the deployed header configuration.
The applicable security policy could not be adequately evaluated.
Evidence requirements
Remove session identifiers, authentication tokens, personal information and other sensitive values before publishing response captures or screenshots.
Classification
| WebOTG procedure | WebOTG-SM-020 |
|---|---|
| OWASP category | A02:2025 — Security Misconfiguration |
| Procedure type | HTTP security policy and browser security configuration review |
| Assessment result | PASS / FAIL / NOT TESTED |
| Finding severity | Determine from the affected browser security boundary, exploitability, application context and resulting impact. |
WebOTG-SM-020 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 testing methodology relevant to security configuration and browser-facing controls. |
| OWASP Application Security Verification Standard | Verification requirements relevant to secure communication and browser security. |
| HTTP security header specifications | Defines the behavior and semantics of individual browser security controls. |
| Organization security baseline | Defines the headers and policy values required for the specific application environment. |
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.