Remove 'confirm_action' from list of actions requiring the CSRF token #529
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.
The current CSRF code is configured to require the token for the
confirm_action
action. However #527 shows that there are legitimate Sympa functions such as unauthenticated archive views that invokeconfirm_action
as part of a GET request (i.e. the "I am not a spammer" click-through challenge for archives).This simple patch removes
confirm_action
from the%require_csrftoken
list. That allowsconfirm_action
to be invoked during GET requests, allowing unauthenticated archive views and other GET based confirmed actions to work as expected.Thankfully, the input validation in
Sympa::WWW::Session::confirm_action()
acts against CSRF on its own, so we are still covered there. Theconfirm
submission must be the very next click in the user's Sympa session, otherwise the pending action is cancelled. Furthermore the action arguments must match a recorded hash before the action can proceed.