Prevent CSRF token from being leaked to cross-origin requests#2889
Open
Lucisu wants to merge 2 commits intoorchidsoftware:masterfrom
Open
Prevent CSRF token from being leaked to cross-origin requests#2889Lucisu wants to merge 2 commits intoorchidsoftware:masterfrom
Lucisu wants to merge 2 commits intoorchidsoftware:masterfrom
Conversation
Member
|
Hi! Thanks for pointing that out. To be honest, I'm not sure it's still necessary to manually set the CSRF token this way. Back when Hotwire was still Turbolinks, it was required, but now the framework should automatically fetch the value from: <meta name="csrf-token" content="[your-value]">Maybe we should try removing this and rely entirely on the framework? |
tabuna
added a commit
that referenced
this pull request
Sep 2, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently, the code inside the html_load_controller.js makes the CSRF token being sent to every Axios and Turbo request:
platform/resources/js/controllers/html_load_controller.js
Lines 41 to 46 in 7e63b9c
This, however, leaks the token to cross-origin requests as well, defeating the whole purpose of CSRF protection.
This fix prevents the token from being leaked to cross-origin requests.
For Axios, it is certain that it needs to be implemented. For Turbo, I'm not sure the "turbo:before-fetch-request" is triggered during cross-origin requests, but I added the fix there as well, just in case.