• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Symfony problem z secured_area

Object Storage Arubacloud
0 głosów
220 wizyt
pytanie zadane 27 lutego 2018 w PHP przez `Krzychuu Stary wyjadacz (13,940 p.)

Witam

Zaczynam uczyć się Symfony, jak na razie zacząłem od logowania, dobrze mi szło do momentu gdy przyszło mi dodać obronę od ataków csrf, dodałem do framework.yaml "csrf_protection: true", w formularzu dodałem ukrytego inputa i mam problem teraz z security.yaml, dodałem 

csrf_token_generator: security.csrf.token_manager

i gdy loguje się to prawidłowo mnie przekierowuje, ale mam problem z dodaniem secured_area, próbowałem już w każde miejsce dodać i ciągle jakieś errory wyskakują, już nie wiem co zrobić.

 

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        main:
            anonymous: ~
            pattern: ^/
            http_basic: ~
            provider: our_db_provider
            form_login:
                login_path: login
                check_path: login
                csrf_token_generator: security.csrf.token_manager

 

1 odpowiedź

+1 głos
odpowiedź 27 lutego 2018 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)
wybrane 27 lutego 2018 przez `Krzychuu
 
Najlepsza
Masz tutaj tutorial ze strony Symfony: http://symfony.com/doc/current/security/csrf.html

Wszystko jest tutaj wytłumaczone od początku, więc nie powinieneś mieć problemu ze zrozumieniem.

Pozdrawiam.
komentarz 27 lutego 2018 przez `Krzychuu Stary wyjadacz (13,940 p.)

właśnie z tego poradnika brałem, tylko mam problem przy pierwszym kroku z CSRF Protection in Login Forms, a dokładnie to nie wiem w które miejsce dodać 

secured_area:
1
komentarz 27 lutego 2018 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)

tak jak jest pokazane, tuż pod firewalls

security:
    firewalls:
        secured_area:
            form_login:
                csrf_token_generator: security.csrf.token_manager

 

komentarz 27 lutego 2018 przez `Krzychuu Stary wyjadacz (13,940 p.)
jak tak dodaje to jest błąd:

Unrecognized option "secured_area" under "security.firewalls.main"
1
komentarz 27 lutego 2018 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)
Wyślij mi swój plik security.yaml, może coś poradzę.
komentarz 27 lutego 2018 przez `Krzychuu Stary wyjadacz (13,940 p.)
security:
    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    encoders:
        App\Entity\Users:
            algorithm: bcrypt

    providers:
        our_db_provider:
            entity:
                class: App\Entity\Users
                property: username

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        main:
            secured_area:
                anonymous: ~
                pattern: ^/
                http_basic: ~
                provider: our_db_provider
                form_login:
                    login_path: login
                    check_path: login
                    csrf_token_generator: security.csrf.token_manager

            # activate different ways to authenticate

            # http_basic: true
            # https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate

            # form_login: true
            # https://symfony.com/doc/current/security/form_login_setup.html

    # Easy way to control access for large sections of your site
    # Note: Only the *first* access control that matches will be used
    access_control:
        # - { path: ^/admin, roles: ROLE_ADMIN }
        # - { path: ^/profile, roles: ROLE_USER }

 

1
komentarz 27 lutego 2018 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)

security:
    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    encoders:
        App\Entity\Users:
            algorithm: bcrypt
 
    providers:
        our_db_provider:
            entity:
                class: App\Entity\Users
                property: username
 
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
 
        main:
            secured_area:
                anonymous: ~
                pattern: ^/
                http_basic: ~
                provider: our_db_provider
            form_login:
                login_path: login
                check_path: login
                csrf_token_generator: security.csrf.token_manager
 
            # activate different ways to authenticate
 
            # http_basic: true
            # https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate
 
            # form_login: true
            # https://symfony.com/doc/current/security/form_login_setup.html
 
    # Easy way to control access for large sections of your site
    # Note: Only the *first* access control that matches will be used
    access_control:
        # - { path: ^/admin, roles: ROLE_ADMIN }
        # - { path: ^/profile, roles: ROLE_USER }

Spróbuj tak, chociaż nie jestem pewien. Znalazłem coś takiego:
https://symfony.com/doc/master/reference/configuration/security.html
I tym się sugerowałem. Ja też nie dawno zacząłem przygodę ze symfony :D Dokładnie to 3 dni temu

komentarz 27 lutego 2018 przez `Krzychuu Stary wyjadacz (13,940 p.)

ten kod co wysłałeś też nie działa, obczaje ten link, edit nic nie znalałem o 

secured_area:
1
komentarz 27 lutego 2018 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)
Ciekawy jestem co jest nie tak. Jutro spróbuje to dodać do swojego projektu i sprawdzę czy działa. Niestety nie ma mnie w domu i tylko tak linkami rzucam.
Jeszcze możesz podejrzeć kod z aplikacji demo:
https://github.com/symfony/demo/blob/master/config/packages/security.yaml
komentarz 27 lutego 2018 przez `Krzychuu Stary wyjadacz (13,940 p.)

hmm, widzę że w wersji demo jest generator tokenu, ale nie jest nigdzie dodany 

secured_area

więc chyba tego nie trzeba dodawać, poczekam na odpowiedz innych co z tym fantem zrobić, dziękuje za pomoc i poświęcony czas :)

1
komentarz 1 marca 2018 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)

Mam rozwiązanie. Mój plik security.yaml
 

security:
    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    encoders:
        App\Entity\User:
            algorithm: bcrypt

    providers:
        database_users:
                    entity: { class: App\Entity\User, property: username }
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
              anonymous: ~
              form_login:
                  login_path: login
                  check_path: login
                  csrf_token_generator: security.csrf.token_manager
              logout:
                  path:   /wyloguj
                  target: /
    # Easy way to control access for large sections of your site
    # Note: Only the *first* access control that matches will be used
    access_control:
        - { path: ^/admin, roles: ROLE_ADMIN }

Mój formularz logowania:

        <form action="{{ path('login') }}" method="post" class="form-grup col-12 col-md-4">
            <label for="username">Nazwa użytkownika:</label>
            <input type="text"
                   class="form-control"
                   id="username"
                   name="_username"

					{% if last_username is defined %}
                        value="{{ last_username }}"
					{% endif %}
            />
            <label for="password">Hasło:</label>
            <input type="password"
                   class="form-control"
                   id="password"
                   name="_password" />

            <input type="hidden"
                   name="_csrf_token"
                   value="{{ csrf_token('authenticate') }}">

            <input type="hidden"
                   name="_target_path"
                   value="start_page" />
            <br>
            <button type="submit" class="btn btn-primary" name="login">Zaloguj</button>
        </form>

A w kontrolerze zostało to co Ty masz. Wcześniej oczywiście zainstalowałem paczkę Composerem.

composer require security-csrf form


 

komentarz 1 marca 2018 przez `Krzychuu Stary wyjadacz (13,940 p.)

czyli wychodzi na to że 

secured_area

nie trzeba dodawać do security.yaml

1
komentarz 1 marca 2018 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)
Dokładnie :)
komentarz 1 marca 2018 przez `Krzychuu Stary wyjadacz (13,940 p.)

Podobne pytania

–1 głos
1 odpowiedź 174 wizyt
pytanie zadane 10 stycznia 2020 w PHP przez niezalogowany
0 głosów
1 odpowiedź 236 wizyt
pytanie zadane 18 grudnia 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)
0 głosów
2 odpowiedzi 184 wizyt
pytanie zadane 27 maja 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...