Skip to content

Conversation

@josevalim
Copy link

The W3 Secure Contexts specification defines additional contexts to be potentially secure beyond HTTPS, such as localhost, 127.0.0.1, and *.localhost. Therefore, by limiting secure cookies to only SSL, we are restricting session uses in additional valid contexts (which is particularly important because setting SameSite=None, which is required by cross-domain iframes, is only doable with the Secure flag).

Backwards-compatibility wise this should be safe because Secure cookies were never returned outside of SSL, and now we will start to. Furthermore, if a Secure cookie is returned over a non-Secure Context, browser automatically discard them.

https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts

The W3 Secure Contexts specification defines additional
contexts to be potentially secure beyond HTTPS, such as
localhost, 127.0.0.1, and *.localhost. Therefore, by
limiting secure cookies to only SSL, we are restricting
session uses in additional valid contexts (which is
particularly important because setting SameSite=None,
which is required by cross-domain iframes, is only doable
with the Secure flag).

Backwards-compatibility wise this should be safe because
Secure cookies were never returned outside of SSL, and now
we will start to. Furthermore, if a Secure cookie is returned
over a non-Secure Context, browser automatically discard them.

https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts
@josevalim
Copy link
Author

It would be important for a security minded person to double check this pull request.

@josevalim
Copy link
Author

If anyone was looking to blame the code to understand why it behaves like this: rack/rack@4defbe5#diff-225166a61eb70a7b8bf59f3c3283e0d6c1e95b02734ad800657117676a6d0e1bR242

😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant