SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Além da Autenticação:
                                           Permissões de Acesso
                                            com Zend Framework




CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2010-08-05   –   1 / 25
Créditos

Sobre o Autor:

    Er Galvão Abbott trabalha há mais de 15 anos
desenvolvendo sistemas e aplicações com interface web.
Palestra em eventos, dá cursos em diversas instituições e
é o Diretor da PHP Conference Brasil, o principal evento de
PHP da América Latina.

    Especializou-se em segurança de aplicações web,
abordando o tema em uma época quando isso ainda era raro
no Brasil.

Site: http://www.galvao.eti.br/
Twitter: @galvao
Slides e Documentos: http://slideshare.net/ergalvao

Imagens:
Zend Framework Logo – http://framework.zend.com/
Oxygen Iconset – http://www.oxygen-icons.org/
Minhas terríveis habilidades de Design

    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2010-11-23   –   2 / 25
Objetivo


    Esta apresentação tem por objetivo apresentar a criação de Listas de Controle de
Acesso (ACLs) de forma a incrementar a segurança de websites e aplicações com interface
web. Serão apresentados conceitos e exemplos prátcos de código, utlizando o Zend
Framework como plataforma para a criação e implementação destas permissões de acesso.

 Serão apresentados os seguintes tópicos:


  ●   O que são permissões de acesso
  ●   Vantagens e Desvantagens
  ●   Zend Framework / Zend_ACL – Por que usar?
  ●   Resources, Roles e Privileges
  ●   Automatizando o controle de acesso
  ●   Atrelando Zend_ACL com Controllers e Actions




      CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   3 / 25
O que são permissões de acesso

                      São, basicamente, regras de acesso que definem se um usuário, após a
                    autenticação, tem ou não permissão para realizar ações específicas em partes
                    específicas de um website ou aplicação web.


 Vantagens

  ●   Incremento na segurança
  ●   Definição a nível de Role e não de nome de usuário específico
  ●   Alto nível de generalização
  ●   Fácil implementação de novos Resources, Roles e Privileges
  ●   Implementação de novas features restritas a beta testers


 Desvantagens

  ●   Alto nível de complexidade de desenvolvimento
  ●   Médio/Alto nível de planejamento




      CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   4 / 25
Zend Framework / Zend_Acl – Por que usar?

                     Como todo o Framework, uma das grandes vantagens do Zend é
                  justamente facilitar tarefas complexas de desenvolvimento, entre elas a
                  implementação de ACLs:




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   5 / 25
Zend Framework / Zend_Acl – Por que usar?


                        Principais vantagens do uso do componente Zend_Acl



  ● Alto nível de generalização: Resources, por exemplo, podem ser Controllers
  (“default”), Models, etc...
  ● Herança entre Roles

  ● Permite desde a implementação de uma ACL simples a uma mais avançada,


  através de Assertions
  ● Facilmente extensível: novos resources, roles e privileges podem ser


  implementados pela edição de código ou mesmo dinamicamente.




                        Principais desvantagens do uso do componente Zend_Acl



  ●   Curva inicial de aprendizado média, devido a problemas de documentação



      CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   6 / 25
Resources, Roles e Privileges




                           Resources (Recursos) são objetos cujo acesso é controlado.




 Roles (Papéis) são objetos que podem tentar acessar um resource.




                        Privileges (Privilégios) são regras especiais de acesso a um resource.




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   7 / 25
Usuários tem Roles




                                                                             Guest (usuários não autenticados)




                                                                                User (usuários autenticados)




                                                                             Admin (Administradores autenticados)

    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   8 / 25
Roles acessam Resources, opcionalmente com Privileges




                                                                                                Home
  Guest



                                                                                                Produtos (index)



   User
                                                                                                       Produtos /
                                                                                                       Visualizar




                                                                                                       Produtos /
  Admin                                                                                                Editar



    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   9 / 25
Roles acessam Resources, opcionalmente com Privileges




                                                                                                Home
  Guest



                                                                                                Produtos (index)



   User
                                                                                                        Produtos /
                                                                                                        Visualizar




                                                                                                        Produtos /
  Admin                                                                                                 Editar



    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   10 / 25
Roles acessam Resources, opcionalmente com Privileges




                                                                                                Home
  Guest



                                                                                                Produtos (index)



   User
                                                                                                        Produtos /
                                                                                                        Visualizar




                                                                                                        Produtos /
  Admin                                                                                                 Editar



    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   11 / 25
Roles acessam Resources, opcionalmente com Privileges




                                                                                                Home
  Guest



                                                                                                Produtos (index)



   User
                                                                                                        Produtos /
                                                                                                        Visualizar




                                                                                                        Produtos /
  Admin                                                                                                 Editar



    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   12 / 25
Roles acessam Resources, opcionalmente com Privileges




                                                                                                Home
  Guest



                                                                                                Produtos (index)



   User
                                                                                                        Produtos /
                                                                                                        Visualizar




                                                                                                        Produtos /
  Admin                                                                                                 Editar



    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   13 / 25
Roles acessam Resources, opcionalmente com Privileges




                                                                                                Home
  Guest



                                                                                                Produtos (index)



   User
                                                                                                        Produtos /
                                                                                                        Visualizar




                                                                                                        Produtos /
  Admin                                                                                                 Editar



    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   14 / 25
Roles acessam Resources, opcionalmente com Privileges




                                                                                                Home
  Guest



                                                                                                Produtos (index)



   User
                                                                                                        Produtos /
                                                                                                        Visualizar




                                                                                                        Produtos /
  Admin                                                                                                 Editar



    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   15 / 25
Roles acessam Resources, opcionalmente com Privileges




                                                                                                Home
  Guest



                                                                                                Produtos (index)



   User
                                                                                                        Produtos /
                                                                                                        Visualizar




                                                                                                        Produtos /
  Admin                                                                                                 Editar



    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   16 / 25
Roles acessam Resources, opcionalmente com Privileges




                                                                                                Home
  Guest



                                                                                                Produtos (index)



   User
                                                                                                        Produtos /
                                                                                                        Visualizar




                                                                                                        Produtos /
  Admin                                                                                                 Editar



    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   17 / 25
Roles acessam Resources, opcionalmente com Privileges




                                                                                                Home
  Guest



                                                                                                Produtos (index)



   User
                                                                                                        Produtos /
                                                                                                        Visualizar




                                                                                                        Produtos /
  Admin                                                                                                 Editar



    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   18 / 25
Roles acessam Resources, opcionalmente com Privileges




                                                                                                Home
  Guest



                                                                                                Produtos (index)



   User
                                                                                                        Produtos /
                                                                                                        Visualizar




                                                                                                        Produtos /
  Admin                                                                                                 Editar



    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   19 / 25
Bootstrapping ACLs – Parte 1




        application/Bootstrap.php




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   20 / 25
Bootstrapping ACLs – Parte 2

                 application/Bootstrap.php




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   21 / 25
Resources → Controllers

    application/plugins/ACL.php




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   22 / 25
Resources → Controllers, Privileges → Actions

   application/plugins/ACL.php




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   23 / 25
Finalizando a automação: Registrando Plugins

   application/Bootsrap.php




    CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   24 / 25
OBRIGADO!




                                               Dúvidas?


   CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott   –   2011-08-05   –   25 / 25

Weitere ähnliche Inhalte

Mehr von Er Galvão Abbott

Php7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberPhp7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberEr Galvão Abbott
 
ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014Er Galvão Abbott
 
Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2Er Galvão Abbott
 
Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Er Galvão Abbott
 
Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoEr Galvão Abbott
 
Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPEr Galvão Abbott
 
ZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoEr Galvão Abbott
 
Implementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoImplementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoEr Galvão Abbott
 
OSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoOSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoEr Galvão Abbott
 
OWASP: O que, Por que e Como
OWASP: O que, Por que e ComoOWASP: O que, Por que e Como
OWASP: O que, Por que e ComoEr Galvão Abbott
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebEr Galvão Abbott
 
Preto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaPreto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaEr Galvão Abbott
 
Implementando Segurança Em Sua Aplicação PHP
Implementando Segurança Em Sua Aplicação PHPImplementando Segurança Em Sua Aplicação PHP
Implementando Segurança Em Sua Aplicação PHPEr Galvão Abbott
 

Mehr von Er Galvão Abbott (20)

Php7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saberPhp7 esta chgando! O que você precisa saber
Php7 esta chgando! O que você precisa saber
 
PHP e Open Source
PHP e Open SourcePHP e Open Source
PHP e Open Source
 
ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014ABRAPHP: Conquistas e Realizações - 2012-2014
ABRAPHP: Conquistas e Realizações - 2012-2014
 
Implementing security routines with zf2
Implementing security routines with zf2Implementing security routines with zf2
Implementing security routines with zf2
 
Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2Desenvolvendo aplicações com ZF2
Desenvolvendo aplicações com ZF2
 
Apresentacao frameworks
Apresentacao frameworksApresentacao frameworks
Apresentacao frameworks
 
Web: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercadoWeb: funcionamento, evolução e mercado
Web: funcionamento, evolução e mercado
 
Otimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHPOtimizando a execução de código-fonte PHP
Otimizando a execução de código-fonte PHP
 
Unbreakeable php
Unbreakeable phpUnbreakeable php
Unbreakeable php
 
PHP: Evolução
PHP: EvoluçãoPHP: Evolução
PHP: Evolução
 
ZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderosoZF2 Menor, melhor e mais poderoso
ZF2 Menor, melhor e mais poderoso
 
Implementando rotinas de geolocalização
Implementando rotinas de geolocalizaçãoImplementando rotinas de geolocalização
Implementando rotinas de geolocalização
 
OSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com issoOSS, Comunidade, Eventos e como sua empresa ganha com isso
OSS, Comunidade, Eventos e como sua empresa ganha com isso
 
OWASP: O que, Por que e Como
OWASP: O que, Por que e ComoOWASP: O que, Por que e Como
OWASP: O que, Por que e Como
 
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento WebProposta de Boas Práticas e Padrões de Desenvolvimento Web
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
 
PHPBR TestFest
PHPBR TestFestPHPBR TestFest
PHPBR TestFest
 
Preto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de CinzaPreto, Branco e as Sombras de Cinza
Preto, Branco e as Sombras de Cinza
 
Top 10 OWASP com PHP
Top 10 OWASP com PHPTop 10 OWASP com PHP
Top 10 OWASP com PHP
 
Aplicacoes Web Com AJAX
Aplicacoes Web Com AJAXAplicacoes Web Com AJAX
Aplicacoes Web Com AJAX
 
Implementando Segurança Em Sua Aplicação PHP
Implementando Segurança Em Sua Aplicação PHPImplementando Segurança Em Sua Aplicação PHP
Implementando Segurança Em Sua Aplicação PHP
 

Além da autenticação: Permissões de acesso com Zend Framework

  • 1. Além da Autenticação: Permissões de Acesso com Zend Framework CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2010-08-05 – 1 / 25
  • 2. Créditos Sobre o Autor: Er Galvão Abbott trabalha há mais de 15 anos desenvolvendo sistemas e aplicações com interface web. Palestra em eventos, dá cursos em diversas instituições e é o Diretor da PHP Conference Brasil, o principal evento de PHP da América Latina. Especializou-se em segurança de aplicações web, abordando o tema em uma época quando isso ainda era raro no Brasil. Site: http://www.galvao.eti.br/ Twitter: @galvao Slides e Documentos: http://slideshare.net/ergalvao Imagens: Zend Framework Logo – http://framework.zend.com/ Oxygen Iconset – http://www.oxygen-icons.org/ Minhas terríveis habilidades de Design CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2010-11-23 – 2 / 25
  • 3. Objetivo Esta apresentação tem por objetivo apresentar a criação de Listas de Controle de Acesso (ACLs) de forma a incrementar a segurança de websites e aplicações com interface web. Serão apresentados conceitos e exemplos prátcos de código, utlizando o Zend Framework como plataforma para a criação e implementação destas permissões de acesso. Serão apresentados os seguintes tópicos: ● O que são permissões de acesso ● Vantagens e Desvantagens ● Zend Framework / Zend_ACL – Por que usar? ● Resources, Roles e Privileges ● Automatizando o controle de acesso ● Atrelando Zend_ACL com Controllers e Actions CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 3 / 25
  • 4. O que são permissões de acesso São, basicamente, regras de acesso que definem se um usuário, após a autenticação, tem ou não permissão para realizar ações específicas em partes específicas de um website ou aplicação web. Vantagens ● Incremento na segurança ● Definição a nível de Role e não de nome de usuário específico ● Alto nível de generalização ● Fácil implementação de novos Resources, Roles e Privileges ● Implementação de novas features restritas a beta testers Desvantagens ● Alto nível de complexidade de desenvolvimento ● Médio/Alto nível de planejamento CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 4 / 25
  • 5. Zend Framework / Zend_Acl – Por que usar? Como todo o Framework, uma das grandes vantagens do Zend é justamente facilitar tarefas complexas de desenvolvimento, entre elas a implementação de ACLs: CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 5 / 25
  • 6. Zend Framework / Zend_Acl – Por que usar? Principais vantagens do uso do componente Zend_Acl ● Alto nível de generalização: Resources, por exemplo, podem ser Controllers (“default”), Models, etc... ● Herança entre Roles ● Permite desde a implementação de uma ACL simples a uma mais avançada, através de Assertions ● Facilmente extensível: novos resources, roles e privileges podem ser implementados pela edição de código ou mesmo dinamicamente. Principais desvantagens do uso do componente Zend_Acl ● Curva inicial de aprendizado média, devido a problemas de documentação CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 6 / 25
  • 7. Resources, Roles e Privileges Resources (Recursos) são objetos cujo acesso é controlado. Roles (Papéis) são objetos que podem tentar acessar um resource. Privileges (Privilégios) são regras especiais de acesso a um resource. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 7 / 25
  • 8. Usuários tem Roles Guest (usuários não autenticados) User (usuários autenticados) Admin (Administradores autenticados) CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 8 / 25
  • 9. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 9 / 25
  • 10. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 10 / 25
  • 11. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 11 / 25
  • 12. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 12 / 25
  • 13. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 13 / 25
  • 14. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 14 / 25
  • 15. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 15 / 25
  • 16. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 16 / 25
  • 17. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 17 / 25
  • 18. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 18 / 25
  • 19. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 19 / 25
  • 20. Bootstrapping ACLs – Parte 1 application/Bootstrap.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 20 / 25
  • 21. Bootstrapping ACLs – Parte 2 application/Bootstrap.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 21 / 25
  • 22. Resources → Controllers application/plugins/ACL.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 22 / 25
  • 23. Resources → Controllers, Privileges → Actions application/plugins/ACL.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 23 / 25
  • 24. Finalizando a automação: Registrando Plugins application/Bootsrap.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 24 / 25
  • 25. OBRIGADO! Dúvidas? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 25 / 25