SameSite for CFCookie doesn't send None values

Description

So close! The fix here was incomplete:

If you pass a value of 'Strict' to Same Site, it will appear in the cookie. If you pass a value of 'Lax', it will also appear in the cookie, like so:

With SameSite='Lax'

However, if you pass the value of 'None', which is supported according to the spec, Lucee decides to OMIT the SameSite attribute entirely.

With SameSite='None'

This is incorrect, for reasons explained here:

https://web.dev/samesite-cookies-explained/?utm_source=devtools

Finally there is the option of not specifying the value which has previously been the way of implicitly stating that you want the cookie to be sent in all contexts. In the latest draft of RFC6265b is this is being made explicit by introducing a new value of SameSite=None. This means you can use None to clearly communicate that you intentionally want the cookie sent in a third-party context.

Explicitly mark the context of a cookie as None, Lax, or Strict.

Why wasn't this just a passthrough? Without being able to set a value of 'None' for valid third-party contexts, cfcookie will still fall prey to the Chrome changes.

See more about this here:

https://blog.heroku.com/chrome-changes-samesite-cookie

Environment

Tested in Lucee 5.3.7.34RC

Assignee

Michael Offner

Reporter

Shawn Grigson

Priority

Critical

Labels

Fix versions

None

Affects versions

Configure