Skip to content

Commit fd38187

Browse files
feature #60007 [Security] Add methods param in IsCsrfTokenValid attribute (Oviglo)
This PR was squashed before being merged into the 7.3 branch. Discussion ---------- [Security] Add methods param in IsCsrfTokenValid attribute | Q | A | ------------- | --- | Branch? | 7.3 | Bug fix? | no | New feature? | yes | Deprecations? | no | License | MIT I use a controller action to show a confirmation message for delete entity, i think it could be usefull to add 'methods' param in `#[IsCsrfTokenValid]` attribute. ```php #[Route('/delete/{id}', name: 'delete', methods: ['GET', 'DELETE'], requirements: ['id' => Requirement::UUID])] public function delete(Request $request, User $user, UserManager $userManager): Response { if ($request->isMethod('DELETE') && $this->isCsrfTokenValid('delete'.$user->getId(), $request->request->get('_token'))) { $userManager->remove($user); return $this->redirectToRoute('admin_user_index'); } return $this->render('/admin/user/delete.html.twig', [ 'entity' => $user, ]); } ``` ```php #[Route('/delete/{id}', name: 'delete', methods: ['GET', 'DELETE'], requirements: ['id' => Requirement::UUID])] #[IsCsrfTokenValid(new Expression('"delete" ~ args["user"].getId()'), methods: ['DELETE'])] public function delete(Request $request, User $user, UserManager $userManager): Response { if ($request->isMethod('DELETE')) { $userManager->remove($user); return $this->redirectToRoute('admin_user_index'); } return $this->render('/admin/user/delete.html.twig', [ 'entity' => $user, ]); } ``` The `isCsrfTokenValid`function is ignored if request method is not settings in param. What do you think about this ? Commits ------- 640e7a4d991 [Security] Add methods param in IsCsrfTokenValid attribute
2 parents 0e60316 + 6887521 commit fd38187

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ CHANGELOG
1616
* Add `--method` option to the `debug:router` command
1717
* Auto-exclude DI extensions, test cases, entities and messenger messages
1818
* Add DI alias from `ServicesResetterInterface` to `services_resetter`
19+
* Add `methods` argument in `#[IsCsrfTokenValid]` attribute
1920

2021
7.2
2122
---

0 commit comments

Comments
 (0)