The SameSite cookie attribute is an HTTP cookie flag from RFC 6265bis that tells a browser whether to send a cookie on cross-site requests. It works in Chrome 51+, Edge 16+, Firefox 60+, Opera 39+, Samsung Internet 5+, and Safari 13+ on macOS and iOS, while Internet Explorer 11 added only partial support.
This guide covers what the SameSite attribute is, the browsers that support it, the three values, the default behavior, how it mitigates CSRF, and the known issues.
What is the SameSite cookie attribute?
The SameSite cookie attribute is an HTTP Set-Cookie flag standardized by the IETF in RFC 6265bis. It tells the browser when to attach a cookie to outgoing requests, accepts the values Strict, Lax, and None, and lets servers block cross-site cookie sends to limit cross-site request forgery.
Which browsers does the SameSite cookie attribute support?
The SameSite cookie attribute works in every modern desktop and mobile browser. Chrome, Edge, Firefox, Opera, Safari, and Samsung Internet support all three values, while Internet Explorer 11 supports only Strict and Lax.
Loading browser compatibility data...
SameSite cookie attribute compatibility in Chrome
Chrome supports the SameSite cookie attribute from Chrome 51 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 80 made SameSite=Lax the default when a cookie omits the attribute, and the same release started rejecting SameSite=None cookies that do not also set Secure. Chrome 1 to 50 did not support SameSite at all.
SameSite cookie attribute compatibility in Edge
Microsoft Edge supports the SameSite cookie attribute from Edge 16 on the legacy EdgeHTML engine, and from Edge 79 on the Chromium engine across Windows, macOS, and Linux. Edge 86 follows Chrome and applies SameSite=Lax as the default. Edge 12 to 15 did not support the attribute.
SameSite cookie attribute compatibility in Firefox
Firefox supports the SameSite cookie attribute from Firefox 60 on Windows, macOS, Linux, and Android. Firefox 69 started rejecting SameSite=None cookies without Secure, but it does not apply SameSite=Lax as a default for cookies that omit the attribute, so any cookie that needs cross-site protection must set the value explicitly. Firefox 1 to 59 did not support SameSite.
SameSite cookie attribute compatibility in Safari
Safari supports the SameSite cookie attribute from Safari 13 on macOS Catalina and from Safari on iOS 13. Safari 12 added partial support but had a known bug that treated SameSite=None as SameSite=Strict, so Strict and Lax cookies worked while None cookies were silently dropped. Safari 1 to 11 did not support the attribute.
SameSite cookie attribute compatibility in Opera
Opera supports the SameSite cookie attribute from Opera 39 on Windows, macOS, and Linux. Opera Mobile supports it from Opera Mobile 41 on Android. Opera tracks the Chromium engine, so Opera 67 follows the same Lax-by-default behavior that Chrome 80 introduced. Opera 1 to 38 did not support the attribute.
SameSite cookie attribute compatibility in Samsung Internet
Samsung Internet supports the SameSite cookie attribute from Samsung Internet 5.0 on Galaxy phones and tablets. The browser is built on Chromium, so it inherits the Lax-by-default behavior from Samsung Internet 13.0, which tracks Chromium 80. Older builds match Chrome for the same Chromium base.
SameSite cookie attribute compatibility in Android Browser
Chrome for Android supports the SameSite cookie attribute from Chrome for Android 51 on Android 4.4 and later. The legacy stock Android Browser on Android 4.3 and earlier did not support SameSite. Modern Android phones should rely on Chrome for Android, Firefox for Android, or Samsung Internet for full coverage of all three SameSite values.
SameSite cookie attribute compatibility in Internet Explorer
Internet Explorer 11 supports the SameSite cookie attribute with partial coverage on Windows 7, Windows 8.1, and Windows 10. IE 11 respects SameSite=Strict and SameSite=Lax, but it treats SameSite=None as if the attribute were missing, so cookies meant for cross-site embedding fall back to default cookie behavior. IE 5.5 to 10 do not support SameSite at all.
Note: SameSite cookie behavior breaks across older Safari, iOS, and Internet Explorer builds. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
What are the SameSite cookie attribute values?
The SameSite cookie attribute accepts three values: Strict, Lax, and None. Each value sets a different rule for when the browser sends the cookie on cross-site requests.
- Strict: Sends the cookie only when the request is on the same registrable site. Top-level navigations from another origin do not include the cookie. Use Strict for high-trust cookies such as banking session tokens or password-reset flows.
- Lax: Sends the cookie on same-site requests and on top-level navigations from another site that use a safe HTTP method like GET. Cross-site fetch, XHR, iframe loads, and POST requests do not include the cookie. Lax is the modern default in Chrome, Edge, and Opera.
- None: Sends the cookie on every request, including cross-site fetches and iframe embeds. The cookie must also have the Secure attribute, so it only travels over HTTPS. Use None for third-party widgets, embedded payment frames, or single sign-on flows.
What is the default SameSite behavior in modern browsers?
Browsers fall into two camps for cookies that omit the SameSite attribute. Chromium-based browsers apply SameSite=Lax as the default, while Firefox and Safari leave the cookie with no SameSite enforcement and rely on their tracking-prevention layers to block obvious cross-site sends.
- Chrome, Edge, and Opera: Apply SameSite=Lax by default from Chrome 80, Edge 86, and Opera 67. A cookie sent without SameSite is treated as Lax for the first two minutes after creation under the Lax-allow-unsafe rule, then strict Lax behavior takes over.
- Firefox: Does not apply Lax by default. The about:config preference network.cookie.sameSite.laxByDefault can flip the behavior for testing, but the shipped default leaves cookies with no SameSite enforcement. Set the attribute explicitly on every cookie.
- Safari: Applies its own Intelligent Tracking Prevention rules instead of a Lax default, so cookies missing SameSite still travel cross-site under most conditions. Set the attribute to lock down behavior.
- Samsung Internet: Inherits the Chromium Lax-by-default behavior from Samsung Internet 13.0, which tracks Chromium 80.

How does SameSite mitigate CSRF attacks?
The SameSite cookie attribute is the simplest server-side CSRF defense in the modern web. It blocks the browser from sending session cookies on cross-site state-changing requests, which removes the foundation of most cross-site request forgery patterns.
- Strict blocks every cross-site send: Even a click on a link from another site does not include the cookie, so an attacker page cannot ride a victim's session at all.
- Lax blocks unsafe methods: A cross-site POST, PUT, or DELETE never carries the cookie, while top-level GET navigations still work. This balance covers the bulk of CSRF vectors without breaking inbound links from search engines and email.
- None reopens the door: Cookies marked SameSite=None ride every cross-site request, so they need a separate CSRF token or origin check to stay safe.
- Pair SameSite with a CSRF token: Even with Lax or Strict in place, OWASP recommends a synchronizer-token or double-submit-cookie pattern as a second layer for state-changing endpoints.
- Validate the Origin and Referer headers: Server-side checks on the Origin or Referer header catch cross-site requests on browsers that do not enforce SameSite, such as IE 11 with SameSite=None.
What are the known issues with the SameSite cookie attribute?
The SameSite cookie attribute is well supported, but it ships with a handful of real bugs and quirks that production teams hit. The biggest hitters are old Safari, the Chrome two-minute Lax window, and the SameSite=None Secure rule.
- Safari 12 treats SameSite=None as Strict: Safari 12 on macOS Mojave and iOS 12 has a known bug that drops SameSite=None cookies on cross-site requests. The fix shipped in Safari 13 on macOS Catalina and iOS 13.
- SameSite=None cookies require Secure: Chrome 80, Edge 86, and Firefox 69 reject any SameSite=None cookie that does not also set the Secure attribute, so HTTP origins cannot use third-party cookies.
- Two-minute Lax-allow-unsafe window: Chrome and Edge let a SameSite-less cookie ride a cross-site POST for up to two minutes after the cookie is set. This grace window can mask broken sign-in flows during testing.
- IE 11 ignores SameSite=None: Internet Explorer 11 treats unknown SameSite values as if the attribute were absent, so a None cookie on IE 11 falls back to default cookie behavior with no cross-site protection.
- Cross-subdomain pitfalls: SameSite is computed at the registrable domain level, also known as eTLD+1, so cookies set on a.example.com and called from b.example.com count as same-site even when teams treat the two hosts as separate apps.
- Lax does not protect cross-site GET endpoints: A state-changing GET request still receives the cookie under Lax. Any endpoint that mutates data on GET needs an explicit CSRF token, or the route must move to POST.
In my experience, the most painful regression is a sign-in iframe that fails only on Safari 12 because the SameSite=None cookie is silently dropped, and the team burns an afternoon hunting before noticing the version split between Safari 12 and Safari 13.

Citations
All SameSite cookie attribute version numbers and platform notes in this guide come from these primary sources: