-
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Figuring out the state of the art in CSRF protection, late-2022 edition #2
Comments
Started a Twitter conversation here: https://twitter.com/simonw/status/1578953514973134848
|
I'm specifically looking for a solution which protects against the insecure subdomain scenario - the scenario where the code I want to protect runs on So I want malicious code on (Or maybe just against |
Also relevant: https://simonwillison.net/2021/Aug/3/samesite/ when I explored SameSite cookies last year. |
https://twitter.com/MaltheJorgensen/status/1579229773498580992 says:
|
https://twitter.com/samuel_colvin/status/1579215646415388672 says:
I replied:
Samuel said:
|
Bought a new domain, |
Great comment here: https://twitter.com/mountain_ghosts/status/1579244599360425986
|
Some demos I'd like to see:
|
https://twitter.com/jub0bs/status/1580905051840602113
|
This presentation is amazingly useful: https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers It references this post by GitHub where they talk about why they moved GitHub pages content to |
Started thinking about this here:
Short version: I want to write some JavaScript that does a POST to a JSON API endpoint, and I'd like to not have to bother with extracting a CSRF token from a cookie and sending it with that POST.
And more generally, I'd like to update my mental model of CSRF protection for what works best circa 2022.
Fundamental questions to answer:
SameSite=Lax
make CSRF tokens obsolete for regular forms?fetch()
calls can interact with JSON APIs that mean you can skip CSRF tokens for those particular requests?The text was updated successfully, but these errors were encountered: