10K Views

Symfony Seguridad De Los Votantes

Updated 12 September 2023

Facebook Linkedin

En la seguridad de aplicaciones web es una preocupación seria, si su solicitud no es suficiente para garantizar que se puede crear un grave problema. Entonces, ¿cómo podemos asegurar que nuestra aplicación está protegida? Hay 2 diseño de la seguridad de la Autenticación y la Autorización.

Autenticación : Autenticación se procesa cuando utilice sus credenciales (por ejemplo. nombre de usuario y contraseña) para acceder al sistema.

Autorización : Después de que el proceso de autenticación, la aplicación sabe quiénes son. Pero puede usted acceder a determinados recursos de la aplicación o no de la autorización.

Symfony proceso de autorización decide si procede o no que el usuario pueda acceder a algunas de las URI, o modificar un determinado objeto. Hay 2 maneras (ACL y los Votantes), pero los Votantes es una solución más sencilla para realizar estas restricciones.

Symfony Votante es un mecanismo para proporcionar acceso al usuario actual de algunos recursos. El votante es una clase que contiene isGranted método donde escribimos nuestra lógica de negocio complejo que decide que usted tiene permiso o no para acceder a este URI, o el objeto.

Todos los votantes que se llama cada vez cuando llama el isGranted método, también se puede pasar un objeto a la isGranted método como un segundo argumento y que el argumento va a pasar con el votante.

Vamos a crear un escenario para la mejor comprensión de los votantes, supongamos que hay un ticket con id #1000 el cual es asignado al Agente y Agente B está tratando de acceder a este billete, pero el Agente B no tiene permiso para acceder a esta entrada.

Para crear un votante para superar esta situación.

En el anterior controlador, debemos comprobar si el usuario actual puede tener acceso a esta entrada llamando a la denyAccessUnlessGranted método de núcleo de Symfony Controlador de Symfony\Bundle\FrameworkBundle\Controller espacio de nombres. Método denyAccessUnlessGranted es una sencilla isGranted método que llama a la isGranted método y si el usuario no está autorizado a continuación, se crea un acceso denegado excepción (403 (prohibido).

Crear un ticket de votantes donde tenemos que escribir nuestra lógica para restringir el acceso al usuario a la entrada.

En el isGranted método, que nos devolverá true si el usuario actual tiene acceso, y false si no.

Para hacer este votante de trabajo, usted necesita configurar este votante en su servicio.fichero yaml. A continuación se muestra el código para la configuración de los votantes:

Eso es todo. Usted puede escribir su propia lógica de negocio basado en su necesidad.

También puede comprobar Symfony Votantes en la documentación de symfony http://symfony.com/doc/current/security/voters.html

Gracias por su tiempo.

Category(s) uvdesk
. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.