SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

PDF
Desenvolvimento de aplicativos para o tablet Motorola XOOM
PDF
Android Aula 3
PDF
UNICESUMAR - PROJETO de INICIAÇÃO CIENTÍFICA do NEAD 05-2015
PPT
Apresentação Projeto TCC
PPT
Apresentação final do tcc
PDF
Segurança PHP em 2016
PDF
Tudo o que você precisa saber sobre o php7
PDF
DRYing the Skeleton: Reducing code repetition in ZF2
Desenvolvimento de aplicativos para o tablet Motorola XOOM
Android Aula 3
UNICESUMAR - PROJETO de INICIAÇÃO CIENTÍFICA do NEAD 05-2015
Apresentação Projeto TCC
Apresentação final do tcc
Segurança PHP em 2016
Tudo o que você precisa saber sobre o php7
DRYing the Skeleton: Reducing code repetition in ZF2

Mais de Er Galvão Abbott (20)

ODP
Php7 esta chgando! O que você precisa saber
ODP
PHP e Open Source
PDF
ABRAPHP: Conquistas e Realizações - 2012-2014
ODP
Implementing security routines with zf2
PDF
Desenvolvendo aplicações com ZF2
PDF
Apresentacao frameworks
ODP
Web: funcionamento, evolução e mercado
ODP
Otimizando a execução de código-fonte PHP
PDF
Unbreakeable php
PDF
PHP: Evolução
PDF
ZF2 Menor, melhor e mais poderoso
ODP
Implementando rotinas de geolocalização
ODP
OSS, Comunidade, Eventos e como sua empresa ganha com isso
ODP
OWASP: O que, Por que e Como
PDF
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
PDF
PHPBR TestFest
PDF
Preto, Branco e as Sombras de Cinza
PDF
Top 10 OWASP com PHP
PDF
Aplicacoes Web Com AJAX
PDF
Implementando Segurança Em Sua Aplicação PHP
Php7 esta chgando! O que você precisa saber
PHP e Open Source
ABRAPHP: Conquistas e Realizações - 2012-2014
Implementing security routines with zf2
Desenvolvendo aplicações com ZF2
Apresentacao frameworks
Web: funcionamento, evolução e mercado
Otimizando a execução de código-fonte PHP
Unbreakeable php
PHP: Evolução
ZF2 Menor, melhor e mais poderoso
Implementando rotinas de geolocalização
OSS, Comunidade, Eventos e como sua empresa ganha com isso
OWASP: O que, Por que e Como
Proposta de Boas Práticas e Padrões de Desenvolvimento Web
PHPBR TestFest
Preto, Branco e as Sombras de Cinza
Top 10 OWASP com PHP
Aplicacoes Web Com AJAX
Implementando Segurança Em Sua Aplicação PHP
Anúncio

Último (19)

PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
Apple Pippin Uma breve introdução. - David Glotz
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Aula04-Academia Heri- Tecnologia Geral 2025
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Aula 18 - Manipulacao De Arquivos python
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Processos na gestão de transportes, TM100 Col18
Custos e liquidação no SAP Transportation Management, TM130 Col18
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
COBITxITIL-Entenda as diferença em uso governança TI
Anúncio

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