Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[Security] : Aligning CSRFtokenId with other code sample#19808

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
ThomasLandauer wants to merge3 commits intosymfony:5.4
base:5.4
Choose a base branch
Loading
fromThomasLandauer:patch-6

Conversation

ThomasLandauer
Copy link
Contributor

@ThomasLandauerThomasLandauer commentedApr 20, 2024
edited
Loading

Page:https://symfony.com/doc/5.x/security.html

Second commit: Aligning CSRF token filed name athttps://symfony.com/doc/5.x/security/custom_authenticator.html#passport-badges withhttps://symfony.com/doc/5.x/security.html#csrf-protection-in-login-forms

Question: I think the other names should be changed too (adding underscore):_username and_password

Page:https://symfony.com/doc/5.x/security.html* I'm making this compatible with the `tokenId` used athttps://symfony.com/doc/5.x/security/custom_authenticator.html#passport-badges* Where what the info coming from that it "must" be called `authenticate`? The docblock of `CsrfTokenBadge` just says it's an "arbitrary string"
@carsonbotcarsonbot added this to the5.4 milestoneApr 20, 2024
@carsonbotcarsonbot changed the title[Security]: Aligning CSRFtokenId with other code sample[Security] : Aligning CSRFtokenId with other code sampleApr 20, 2024
Copy link
Member

@wouterjwouterj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Hi! I'm afraid both changes are incorrect, I explained it in a bit more detail in the diff... but I think you this shows that we have to improve the docs on CSRF a bit.

I made a small suggestion in the comments, do you want to update this PR if you agree?

security.rst Outdated
must be called ``_csrf_token`` and the string used to generate the value must
be ``authenticate``:
is called ``_csrf_token`` and takes an arbitrary string as argument ``tokenId``:
Copy link
Member

@wouterjwouterjApr 21, 2024
edited
Loading

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

This section is talking about the build-in form login authenticator. Youmust define it asauthenticate to make it work with this authenticator.

I think we can improve the wording onhttps://symfony.com/doc/current/security/csrf.html#csrf-protection-in-login-forms, but the change in this document must be reverted. A suggested rewording for the linked section:

- See :ref:`form_login-csrf` for a login form that is protected from CSRF+ When using the ``form_login`` authenticator, see :ref:`form_login-csrf` to protected from  attacks. You can also configure the  :ref:`CSRF protection for the logout action <reference-security-logout-csrf>`.+ When implementing a custom authenticator, use the ``CsrfTokenBadge`` on the+ :doc:`security passport </security/custom_authenticator>`.

Copy link
ContributorAuthor

@ThomasLandauerThomasLandauerApr 21, 2024
edited
Loading

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

OK, I changed it, please take a look now.

For your suggested change, I'll come back to it after we found a solution for the below conversation.

$username = $request->request->get('username');
$csrfToken = $request->request->get('csrf_token');
$password = $request->request->get('password');
$csrfToken = $request->request->get('_csrf_token');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

I think we should also revert this change. The underscore prefix is only something used in the build-in authenticator (it's a convention in Symfony to prefix things with an underscore to avoid conflicts with application names).

When implementing a custom authenticator, you can name the field whatever you like and it's better tonot use the underscore prefix as this counters the anti-conflict purpose of the prefix.

Copy link
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

OK, but now the docs are inconsistent (i.e. the HTML shown on one page doesn't work with the PHP code shown on the other page).

Solution? => Show the right HTML code here too!

To make this possible, the list athttps://symfony.com/doc/5.x/security/custom_authenticator.html#passport-badges needs to be changed to sub-headings. Then the PHP code block we're talking about can be moved upwards under the (new) "CsrfTokenBadge" heading (=where it belongs anyway). Then I can add this HTML, resulting in a complete copy-pastable sample:

<inputtype="hidden"name="csrf_token"value="{{ csrf_token('login') }}"><inputtype="text"name="username"><inputtype="password"name="password">

What do you think?

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@wouterjwouterjwouterj requested changes

Assignees
No one assigned
Projects
None yet
Milestone
6.4
Development

Successfully merging this pull request may close these issues.

4 participants
@ThomasLandauer@wouterj@xabbuh@carsonbot

[8]ページ先頭

©2009-2025 Movatter.jp