Helpdesk form: store direct access token in session once validated #19142
+27
−31
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.
Checklist before requesting a review
Description
As a reminder, this token allow a form to be accessed like this:
/Form/Render/{$id}?token={$token}
.This works well when accessing a form but mean that any AJAX requested performed on the form page must also include this token to make sure the user is allowed to call it.
This is bad because it is hard to maintain (need to manually include the token everywhere) and non generic (the access policiy that deal with the token should not rely on external code that manually refer to its internal behavior).
The proposed solution is to store the submitted token in the session so it can easily be accessed by any ajax request using the session data.
This should not weaken the security as you still need the correct token to access the form in the first place.