SameSite cookies
Restricts when cookies are attached to cross-site requests.
Support in current browsers
Checked against the current browser versions recorded in MDN browser data 8.1.5.
| Browser | Minimum | Outcome | Reason |
|---|---|---|---|
| Chrome | 155 | Works | Every required mapped BCD feature is available without a recorded qualification. |
| Edge | 154 | Works | Every required mapped BCD feature is available without a recorded qualification. |
| Firefox | 157 | Works | Every required mapped BCD feature is available without a recorded qualification. |
| Safari | 27 | Works with limits | Every required mapped feature is available, but BCD records one or more qualifications. |
| Chrome for Android | 155 | Works | Every required mapped BCD feature is available without a recorded qualification. |
| Firefox for Android | 157 | Works | Every required mapped BCD feature is available without a recorded qualification. |
| Safari on iOS | 27 | Works | Every required mapped BCD feature is available without a recorded qualification. |
| Android WebView | 155 | Works | Every required mapped BCD feature is available without a recorded qualification. |
| Samsung Internet | 30.0 | Works | Every required mapped BCD feature is available without a recorded qualification. |
How support changed
Each segment groups recorded releases with the same result. Gaps between recorded versions are not filled in. This is support at each release, rather than the planner’s check of every release above a minimum.
Chrome
http.headers.Set-Cookie.SameSite- 1 – 5050 recorded releasesNot supported
- 51 – 155104 recorded releasesWorks
Edge
http.headers.Set-Cookie.SameSite- 12 – 154 recorded releasesNot supported
- 16 – 15478 recorded releasesWorks
Firefox
http.headers.Set-Cookie.SameSite- 1 – 5962 recorded releasesNot supported
- 60 – 15798 recorded releasesWorks
Safari
http.headers.Set-Cookie.SameSite- 1 – 11.119 recorded releasesNot supported
- Safari 13 on macOS 10.14 (Mojave), treats <code>SameSite=None</code> and invalid values as <code>Strict</code>. This is fixed in version 10.15 (Catalina) and later.
- Partial implementation
- Treats <code>SameSite=None</code> and invalid values as <code>Strict</code> in macOS before 10.15 Catalina. See <a href="https://webkit.org/b/198181">bug 198181</a>.
- 12 – 12.12 recorded releasesWorks with limits
- Partial implementation
- Treats <code>SameSite=None</code> and invalid values as <code>Strict</code> in macOS before 10.15 Catalina. See <a href="https://webkit.org/b/198181">bug 198181</a>.
- 13 – 2740 recorded releasesWorks with limits
- Safari 13 on macOS 10.14 (Mojave), treats <code>SameSite=None</code> and invalid values as <code>Strict</code>. This is fixed in version 10.15 (Catalina) and later.
Chrome for Android
http.headers.Set-Cookie.SameSite- 18 – 5027 recorded releasesNot supported
- 51 – 155104 recorded releasesWorks
Firefox for Android
http.headers.Set-Cookie.SameSite- 4 – 5953 recorded releasesNot supported
- 60 – 15788 recorded releasesWorks
Safari on iOS
http.headers.Set-Cookie.SameSite- 1 – 1217 recorded releasesNot supported
- Partial implementation
- Treats <code>SameSite=None</code> and invalid values as <code>Strict</code> in iOS before 13. See <a href="https://webkit.org/b/198181">bug 198181</a>.
- 12.21 recorded releaseWorks with limits
- Partial implementation
- Treats <code>SameSite=None</code> and invalid values as <code>Strict</code> in iOS before 13. See <a href="https://webkit.org/b/198181">bug 198181</a>.
- 13 – 2740 recorded releasesWorks
Android WebView
http.headers.Set-Cookie.SameSite- 1 – 5022 recorded releasesNot supported
- 51 – 155104 recorded releasesWorks
Samsung Internet
http.headers.Set-Cookie.SameSite- 1.0 – 4.29 recorded releasesNot supported
- 5.0 – 30.043 recorded releasesWorks
BCD 8.1.5 · catalogue 2.3.0. Source corrections can change this trace without a new browser release.
What this feature can and cannot do
Helps protect against
- Cross-site request forgery
- Unnecessary cross-site cookie exposure
Does not guarantee
- Same-site request forgery
- Cross-site scripting
- Authentication and authorisation design
What you need before using it
- Explicit cookie classification
- Secure transport for SameSite=None
Fallback to keep in place
Use CSRF tokens, origin validation, Secure cookies, and ordinary authorisation checks.