RoastMyOpsec

Safety

Set-Cookie Priority vs Max-Age for Cookie Retention

November 6, 2025

Set-Cookie Priority vs Max-Age is two different clocks on the same cookie, and only one is a web standard: Max-Age (or Expires) is how long the cookie should live, while Priority=High|Medium|Low is a Chromium eviction hint when a per-domain jar is full — not a security flag and not a substitute for Max-Age. Auth cookies still need Secure, HttpOnly, and SameSite. RoastMyOpsec does not grade Priority, does not fail Max-Age versus a session cookie, and only checks those three flags on session-like landing names.

The practical difference

Max-Age is seconds until expiry. Session cookies omit Max-Age and Expires. Browsers also cap very long lifetimes. Deleting a cookie is Max-Age=0 (or a past Expires) with the same Path and Domain as the original.

Priority does not make a cookie HttpOnly, does not keep it off HTTP, and does not change SameSite. A High-priority analytics cookie is still not your session. Non-Chromium browsers ignore Priority. Do not advertise Priority=High as hardening in a security review.

How to choose based on what you shipped

Set Max-Age from the product lifetime. Set Secure, HttpOnly, and SameSite from the cookie's job. Leave Priority unset unless you are tuning Chromium eviction for a large first-party jar and you understand it will not travel to every browser.

If the jar is overflowing, fewer cookies is the real fix — not Priority=High on everything. Session-shaped names should stay few, prefixed when you can, and never duplicated as a JS-readable twin.

OptionWhen it winsWatch-outTakeaway
Max-Age (or Expires)You want a defined lifetime or an immediate deleteHuge lifetimes; Path mismatch on logoutThe standard retention control
Session cookie (no Max-Age)You want browser-session semanticsSession restore; not a lockLifetime choice, still needs flags
Priority=High (Chromium)Eviction tuning when the domain jar is fullTreating it as Secure or as a standardIgnore for OPSEC; not scored
Secure + HttpOnly + SameSiteAny cookie that proves loginFlags on a pixel, missing on sessionWhat a public roast can actually grade

When Max-Age still wins and Priority does not

Max-Age always wins as the lifetime contract you can document. Priority never wins as a substitute for flags or as a reason to keep fifty marketing cookies. If Chromium evicts a Low-priority preference cookie, that is a jar-hygiene problem, not a session design.

A homepage roast often never sees the login Set-Cookie. Audit the auth response in your own tools for flags and lifetime. Prefixes (__Host- / __Secure-) are a better name-level lock than Priority.

Common mistakes

The first mistake is Priority=High on the session cookie and missing HttpOnly.

The second mistake is documenting Priority as a W3C security header.

The third mistake is reading a cookie pass on the marketing pixel as a pass on login Max-Age.

What a URL roast can prove

RoastMyOpsec grades session-like Set-Cookie headers on the URL you paste for Secure, HttpOnly, and SameSite (and SameSite=None without Secure). It does not score cookie Max-Age versus session as a standalone F, does not read Priority, and does not log in. No cookies on the landing response is info, not a lifetime certificate. Headers still cover CSP quality, HSTS, framing, Referrer-Policy, nosniff, and Permissions-Policy; TLS is HTTPS scheme; plus paths and public JS secrets. No GPC score, no HSTS preload submit, no exploit payloads.

Free audit the URL you own

RoastMyOpsec is a defensive public-surface roast: headers, cookies, sensitive paths, and more — no exploit payloads. Start with the free audit, then open the vault if the blurred findings look expensive.

Free audit now

FAQ

Does Priority=High make a cookie more secure?
No. It is a Chromium eviction hint. Security attributes are Secure, HttpOnly, SameSite, Path, Domain, and prefixes — not Priority.
Does RoastMyOpsec check cookie Priority or Max-Age?
No. It does not grade Priority. Max-Age versus a session cookie is not a standalone fail. It checks Secure, HttpOnly, and SameSite on session-like names.
Should I set Priority on auth cookies?
You do not need it for OPSEC. Set lifetime with Max-Age if you want a clock, and set the standard flags. Priority will not travel to every browser.

Sources

Related guides