Sécuriser son projet Symfony
L'une des raisons qui pousse un développeur sérieux à travailler avec un framework est l'utilisation de technologies toutes faites pour sécuriser son projet très facilement. Symfony propose toute une série d'outils qui vous permettent de séruriser vos fonctionnalités notamment via une distribution de ROLE. (USER, ADMIN, etc.)
security.yml
La manière la plus simple / efficace d'interdire un accès à un utilisateur non identifié et de passer par le fichier security.yml
Nous voulons par exemple interdire l'accès aux ressources /admin
, il suffira de l'indiquer dans le fichier
security.yml comme ceci:
security: access_control: - { path: ^/admin, role: ROLE_USER }
Si l'utilisateur essaie d'accéder par exemple à la ressource /admin/home
, il sera redirigé vers /login
Sécuriser une partie de votre code
Vous pouvez à tout moment lancer une erreur d'interdirection dans votre controlleur:
use Symfony\Component\Security\Core\Exception\AccessDeniedException; public function helloAction($name) { if (false === $this->get('security.context')->isGranted('ROLE_ADMIN')) { throw new AccessDeniedException(); } }
UNE QUESTION SUR L'ARTICLE?