Safeguard
Application Security•

ASVS 5.0 V3.7.5: Define What Happens on Browsers Missing Security Features

ASVS V3.7.5 (Level 3) says the app must behave as documented, by warning or blocking, when a browser lacks expected security features. Detection code and test steps.

Safeguard Security Team
2 min read

ASVS 5.0 requirement V3.7.5 says the application must behave as documented, for example warn the user or block access, when the browser used to reach it does not support the security features the app expects. It is a Level 3 requirement.

Why it matters

Your security design may assume things like SameSite cookies, CSP enforcement, Sec-Fetch headers, Web Crypto or WebAuthn. An old or unusual browser ignores unknown headers without complaint, so protections quietly vanish. If nobody decided what should happen, the behavior is accidental.

How to implement it

First, write down the features you rely on and what you do when they are missing: warn, degrade or block. Then detect on the client:

const missing = [];
if (!window.crypto || !window.crypto.subtle) missing.push("Web Crypto");
if (!("PublicKeyCredential" in window)) missing.push("WebAuthn");
if (!window.CSS || !CSS.supports("selector(:is(a))")) missing.push("modern CSS");

if (missing.length) {
  document.body.innerHTML = "";
  const p = document.createElement("p");
  p.textContent = "This browser lacks required security features: " + missing.join(", ") + ". Please update it.";
  document.body.appendChild(p);
}

For server side checks, treat a missing Sec-Fetch-Site header on sensitive routes according to your documented rule, see V3.5.3. Keep the message in plain text and avoid inserting user supplied data.

How to test it

Run the app in the oldest browser you claim to support and in one older than that, and check the behavior matches the document. Remove features in a test build, for example by deleting window.PublicKeyCredential in the console before load, and confirm the warning or block appears.

Common mistakes

No written decision. The requirement asks for documented behavior.

Silent fallback to weaker protection.

Detection by user agent string. Test the feature itself.

Quick check

Must I block unsupported browsers?

No. Warning is acceptable if that is what you documented and it fits the risk.

Sources

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.