SlideShare uma empresa Scribd logo
Proteja sua aplicação com o
Zend Framework 2
PHPEste - João Pessoa - 03/10/2015
Sobre mim
Cyrille Grandval (@CyrilleGrandval)
• Z-Team member : Zend Evangelist
• Consultor PHP / Segurança desde 2000
• Professor / tutor em PHP e segurança das
aplicações web
• Palestrante internacional, autor de livros e
artigos técnicos
• Fundador da Darkmira França e Darkmira
Brasil
OWASP Top 10 2013
A1 - Injeção de código
A2 - Quebra de autenticação e
Gerenciamento de Sessão
A3 - Cross-Site Scripting (XSS)
A4 - Referência Insegura e Direta a
Objetos
A5 - Configuração Incorreta de
Segurança
A6 - Exposição de Dados Sensíveis
A7 - Falta de Função para Controle do
Nível de Acesso
A8 - Cross-Site Request Forgery (CSRF)
A9 - Utilização de Componentes
Vulneráveis Conhecidos
A10 - Redirecionamentos e
Encaminhamentos Inválidos
https://www.owasp.org/images/9/9c/OWASP_Top_10_2013_PT-BR.pdf
Lembrança
Uma configuração segura tem de ser definida, implementada e mantida
cada dia
• Não exiba as mensagens de erros do sistema / stacktrace
• Modificar os logins / senhas padrão das aplicações
• Manter a versão de PHP atualizada
• Manter os librairies atualizados
Primeiro mantra
Think out of the box
Think out of the box
Ligue cada tesouro!
ligar os 9 tesouros
4 linhas retas
sem retirar a caneta
1 2 3
4 5 6
7 8 9
Organização do código
• 1 diretório público sendo a raiz web
• 1 front controller só : index.php
• configurações :
• globais : *.global.php
• locais : *.local.php -> (.gitignore)
Componentes de segurança
• ZendAuthentification
• ZendDb
• ZendCaptcha
• ZendCrypt
• ZendEscaper
• ZendFilter
• ZendInputFilter
• ZendPermissions
• ZendMath
• ZendValidator
Segundo mantra
Filter input, escape output
Trust
no
one
Proteja sua aplicação com o zend framework 2
Filtrar
Existe vários filtros :
ZendFilterBlacklist
ZendFilterBoolean
ZendFilterCallback
ZendFilterDigits
ZendFilterDecrypt
ZendFilterEncrypt
ZendFilterHtmlEntities
ZendFilterPregReplace
ZendFilterStripTags
ZendFilterToInt
ZendFilterWhiteList
ZendI18nFilter* e muito mais
Filtrar
Filtrar
Para integrar em um formulário
• implementar o interface InputFilterProviderInterface
• criar um método publico getInputFilterSpecification
• especificar o filtro para o campo nesse método
Criar um filtro de entrada
• permite de definir uma coleção de filtros e validators
• pode ser aplicado sobre qualquer tipo de dados (formulários,
parâmetro GET, COOKIE, headers HTTP, …)
• contém um método isValid que verifica a validade dos dados
Criar um filtro de entrada
Usar um filtro de entrada
ZendValidatorInArray
ZendValidatorLessThan
ZendValidatorRegexp
ZendValidatorStringLength
ZendValidatorUri
ZendI18nValidator* e muito mais
Validar
Existe vários validators :
ZendValidatorDbRecordExists
ZendValidatorCallback
ZendValidatorCreditCard
ZendValidatorDigits
ZendValidatorEmailAddress
ZendValidatorGreaterThan
Validar
Cada validator contém um método isValid
Validar
Para integrar em um formulário
• implementar o interface InputFilterProviderInterface
• criar um método publico getInputFilterSpecification
• especificar o validator para o campo nesse método
Escapar
Existe vários formatos :
• escapeHTML()
• escapeHTMLattr()
• escapeUrl()
• escapeJs()
• escapeCss()
Escapar
Ou diretamente no view
echo $this->escapeHTML($this->message);
Logar
O componente ZendAuthentification fornece API para se conectar e
vários adapters são disponiveis :
• Database Table
• Digest
• HTTP
• LDAP
Você também pode criar o seu adapter.
Controlar acesso
Criar um Access Control List
• simple
• evolutivo
• facilmente auditável
• deny all por padrão
Controlar acesso
O que é um resource
• objeto ao qual o acesso é controlada
O que é um role
• objeto que pode pedir o acesso a um recurso
Controlar acesso
Configurar as sessões
Configurar as sessões
Usar os validators para as sessões
Configurar as sessões
Regeração do ID de sessão contra a fixação
Criptografar
ZendCrypt permite implementar uma criptografia avançada e simple
• ZendCryptBlockCipher
• ZendCryptHash
• ZendCryptHmac
• ZendCryptKeyDerivation
• ZendCryptPassword
• ZendCryptPublicKey
• ZendCryptSymmetic
Criptografar com BlockCipher
ZendCryptBlockCipher usa o adapter Mcrypt
• usar para encrypt/decrypt dados sensiveis (symmetric encryption)
• gere também a autenticação HMAC
Métodos do API
• setKey($key)
• encrypt($data)
• decrypt($data)
Criptografar com BlockCipher
Password hash
Parar de usar
• md5 ou sha1 com ou sem salt
Recomandado
• bcrypt
• scrypt
Criptografar com Bcrypt
ZendCryptPasswordBCrypt
Métodos do API
• create($password)
• verify($password, $hash)
• setSalt($salt)
• setCost($cost)
Criptografar com Bcrypt
Prepared Statement
Declarações preparadas que são armazenados no servidor de bancos de
dados
objetivo :
• executar consultas sem variação da sintaxe
• mudança apenas nos parâmetros
• velocidade na execução dos comandos SQL
• maior segurança pois os dados são identificados e escapados
Usar os prepared statement
Parâmetro anonimo
Parâmetro nomeado
Implementar um token
Se manter informado
Para ter uma boa segurança, é preciso cuidar do desenvolvimento da sua
aplicação mas também das ferramentas usadas.
Se mantenha em alerta das falhas de segurança do Zend Framework 2
http://framework.zend.com/security/advisories/
Debug
Segurar é também criar uma aplicação sem comportamento anormal, sem
bug. Usar um debugguer ao invês de var_dump.
Zend fornece uma ferramenta de debug com o Zend Server : Z-Ray
• Baixa o new Z-Ray Standalone (não precisa do Zend Server) :
http://www.zend.com/en/products/z-ray/z-ray-preview
• Participe do novo Z-Ray Standalone com seu feedback :
https://docs.google.com/a/zend.com/forms/d/1xyg592SHOm5g1JJ5XLa
1KjgB1D0th5v7dGoMU1i2ZgU/viewform?usp=send_form
Obrigado :-)
Dê seu feedback no http://joind.in/event/view/4001

Mais conteúdo relacionado

Destaque

Curso de Introdução - PHP Zend Framework
Curso de Introdução - PHP Zend FrameworkCurso de Introdução - PHP Zend Framework
Curso de Introdução - PHP Zend Framework
Evandro Klimpel Balmant
 
Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da Zend
Domingos Teruel
 
Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2
William Felipe
 
Desfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend FrameworkDesfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend Framework
Fernando Geraldo Mantoan
 
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISCCriando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Flávio Lisboa
 
Entendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend FrameworkEntendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend Framework
Gedvan Dias
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend Framework
Domingos Teruel
 

Destaque (7)

Curso de Introdução - PHP Zend Framework
Curso de Introdução - PHP Zend FrameworkCurso de Introdução - PHP Zend Framework
Curso de Introdução - PHP Zend Framework
 
Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da Zend
 
Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2Trabalhando com eventos e serviços no Zend Framework 2
Trabalhando com eventos e serviços no Zend Framework 2
 
Desfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend FrameworkDesfrutando os Componentes do Zend Framework
Desfrutando os Componentes do Zend Framework
 
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISCCriando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
 
Entendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend FrameworkEntendendo a Arquitetura MVC do Zend Framework
Entendendo a Arquitetura MVC do Zend Framework
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend Framework
 

Semelhante a Proteja sua aplicação com o zend framework 2

TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
tdc-globalcode
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
Elton Minetto
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
Sergio Henrique
 
Segurança Web: O MMA da Tecnologia
Segurança Web: O MMA da TecnologiaSegurança Web: O MMA da Tecnologia
Segurança Web: O MMA da Tecnologia
Carlos Nilton Araújo Corrêa
 
PHP MySQL Aula 07
PHP MySQL Aula 07PHP MySQL Aula 07
PHP MySQL Aula 07
Carlos Santos
 
Api todo list
Api todo listApi todo list
GUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em JavaGUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em Java
Rodrigo Cândido da Silva
 
Segurança em PHP
Segurança em PHPSegurança em PHP
Segurança em PHP
Augusto Pascutti
 
Mule pe salesforce mule security
Mule pe   salesforce mule securityMule pe   salesforce mule security
Mule pe salesforce mule security
Jeison Barros
 
Mini Curso Zend Framework
Mini Curso Zend FrameworkMini Curso Zend Framework
Mini Curso Zend Framework
Adler Medrado
 
Zabbix e KACE, uma boa ideia, e porque não!
Zabbix e KACE, uma boa ideia, e porque não!Zabbix e KACE, uma boa ideia, e porque não!
Zabbix e KACE, uma boa ideia, e porque não!
Fabio Vieira Mello
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Clavis Segurança da Informação
 
Seminário Plataforma Java - Segurança e Criptografia
Seminário Plataforma Java - Segurança e CriptografiaSeminário Plataforma Java - Segurança e Criptografia
Seminário Plataforma Java - Segurança e Criptografia
Leonardo Venancio
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
PrinceGuru MS
 
Floripa on Rails - Security Tips
Floripa on Rails  - Security TipsFloripa on Rails  - Security Tips
Floripa on Rails - Security Tips
Rafael Besen - Hiring Awesome Devs
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Alexandro Silva
 
Java security
Java securityJava security
Java security
armeniocardoso
 
Dicas de segurança para o PHP e seus amigos
Dicas de segurança para o PHP e seus amigosDicas de segurança para o PHP e seus amigos
Dicas de segurança para o PHP e seus amigos
Joubert Guimarães de Assis "RedRat"
 
ZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoZF Básico - 1. Introdução
ZF Básico - 1. Introdução
Marcos Bezerra
 
Segurança em Rails
Segurança em RailsSegurança em Rails
Segurança em Rails
Juan Maiz
 

Semelhante a Proteja sua aplicação com o zend framework 2 (20)

TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
TDC2018SP | Trilha Arq PHP - Seguranca de aplicacoes web com o uso de Boas pr...
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
 
Segurança Web: O MMA da Tecnologia
Segurança Web: O MMA da TecnologiaSegurança Web: O MMA da Tecnologia
Segurança Web: O MMA da Tecnologia
 
PHP MySQL Aula 07
PHP MySQL Aula 07PHP MySQL Aula 07
PHP MySQL Aula 07
 
Api todo list
Api todo listApi todo list
Api todo list
 
GUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em JavaGUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em Java
 
Segurança em PHP
Segurança em PHPSegurança em PHP
Segurança em PHP
 
Mule pe salesforce mule security
Mule pe   salesforce mule securityMule pe   salesforce mule security
Mule pe salesforce mule security
 
Mini Curso Zend Framework
Mini Curso Zend FrameworkMini Curso Zend Framework
Mini Curso Zend Framework
 
Zabbix e KACE, uma boa ideia, e porque não!
Zabbix e KACE, uma boa ideia, e porque não!Zabbix e KACE, uma boa ideia, e porque não!
Zabbix e KACE, uma boa ideia, e porque não!
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
 
Seminário Plataforma Java - Segurança e Criptografia
Seminário Plataforma Java - Segurança e CriptografiaSeminário Plataforma Java - Segurança e Criptografia
Seminário Plataforma Java - Segurança e Criptografia
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Floripa on Rails - Security Tips
Floripa on Rails  - Security TipsFloripa on Rails  - Security Tips
Floripa on Rails - Security Tips
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos SentinelasProteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas
 
Java security
Java securityJava security
Java security
 
Dicas de segurança para o PHP e seus amigos
Dicas de segurança para o PHP e seus amigosDicas de segurança para o PHP e seus amigos
Dicas de segurança para o PHP e seus amigos
 
ZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoZF Básico - 1. Introdução
ZF Básico - 1. Introdução
 
Segurança em Rails
Segurança em RailsSegurança em Rails
Segurança em Rails
 

Mais de Cyrille Grandval

Hackeando sua aplicaçao php na pratica
Hackeando sua aplicaçao php na pratica Hackeando sua aplicaçao php na pratica
Hackeando sua aplicaçao php na pratica
Cyrille Grandval
 
Sécuriser mes applications avec ZF2
Sécuriser mes applications avec ZF2Sécuriser mes applications avec ZF2
Sécuriser mes applications avec ZF2
Cyrille Grandval
 
Nouveautés php 7
Nouveautés php 7Nouveautés php 7
Nouveautés php 7
Cyrille Grandval
 
Quer segurar sua aplicação? Hackeie a primeiro(a)!
Quer segurar sua aplicação? Hackeie a primeiro(a)!Quer segurar sua aplicação? Hackeie a primeiro(a)!
Quer segurar sua aplicação? Hackeie a primeiro(a)!
Cyrille Grandval
 
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
Cyrille Grandval
 
Durcissement de code - Sécurité Applicative Web
Durcissement de code - Sécurité Applicative WebDurcissement de code - Sécurité Applicative Web
Durcissement de code - Sécurité Applicative Web
Cyrille Grandval
 

Mais de Cyrille Grandval (6)

Hackeando sua aplicaçao php na pratica
Hackeando sua aplicaçao php na pratica Hackeando sua aplicaçao php na pratica
Hackeando sua aplicaçao php na pratica
 
Sécuriser mes applications avec ZF2
Sécuriser mes applications avec ZF2Sécuriser mes applications avec ZF2
Sécuriser mes applications avec ZF2
 
Nouveautés php 7
Nouveautés php 7Nouveautés php 7
Nouveautés php 7
 
Quer segurar sua aplicação? Hackeie a primeiro(a)!
Quer segurar sua aplicação? Hackeie a primeiro(a)!Quer segurar sua aplicação? Hackeie a primeiro(a)!
Quer segurar sua aplicação? Hackeie a primeiro(a)!
 
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
 
Durcissement de code - Sécurité Applicative Web
Durcissement de code - Sécurité Applicative WebDurcissement de code - Sécurité Applicative Web
Durcissement de code - Sécurité Applicative Web
 

Proteja sua aplicação com o zend framework 2

  • 1. Proteja sua aplicação com o Zend Framework 2 PHPEste - João Pessoa - 03/10/2015
  • 2. Sobre mim Cyrille Grandval (@CyrilleGrandval) • Z-Team member : Zend Evangelist • Consultor PHP / Segurança desde 2000 • Professor / tutor em PHP e segurança das aplicações web • Palestrante internacional, autor de livros e artigos técnicos • Fundador da Darkmira França e Darkmira Brasil
  • 3. OWASP Top 10 2013 A1 - Injeção de código A2 - Quebra de autenticação e Gerenciamento de Sessão A3 - Cross-Site Scripting (XSS) A4 - Referência Insegura e Direta a Objetos A5 - Configuração Incorreta de Segurança A6 - Exposição de Dados Sensíveis A7 - Falta de Função para Controle do Nível de Acesso A8 - Cross-Site Request Forgery (CSRF) A9 - Utilização de Componentes Vulneráveis Conhecidos A10 - Redirecionamentos e Encaminhamentos Inválidos https://www.owasp.org/images/9/9c/OWASP_Top_10_2013_PT-BR.pdf
  • 4. Lembrança Uma configuração segura tem de ser definida, implementada e mantida cada dia • Não exiba as mensagens de erros do sistema / stacktrace • Modificar os logins / senhas padrão das aplicações • Manter a versão de PHP atualizada • Manter os librairies atualizados
  • 6. Think out of the box Ligue cada tesouro! ligar os 9 tesouros 4 linhas retas sem retirar a caneta 1 2 3 4 5 6 7 8 9
  • 7. Organização do código • 1 diretório público sendo a raiz web • 1 front controller só : index.php • configurações : • globais : *.global.php • locais : *.local.php -> (.gitignore)
  • 8. Componentes de segurança • ZendAuthentification • ZendDb • ZendCaptcha • ZendCrypt • ZendEscaper • ZendFilter • ZendInputFilter • ZendPermissions • ZendMath • ZendValidator
  • 12. Filtrar Existe vários filtros : ZendFilterBlacklist ZendFilterBoolean ZendFilterCallback ZendFilterDigits ZendFilterDecrypt ZendFilterEncrypt ZendFilterHtmlEntities ZendFilterPregReplace ZendFilterStripTags ZendFilterToInt ZendFilterWhiteList ZendI18nFilter* e muito mais
  • 14. Filtrar Para integrar em um formulário • implementar o interface InputFilterProviderInterface • criar um método publico getInputFilterSpecification • especificar o filtro para o campo nesse método
  • 15. Criar um filtro de entrada • permite de definir uma coleção de filtros e validators • pode ser aplicado sobre qualquer tipo de dados (formulários, parâmetro GET, COOKIE, headers HTTP, …) • contém um método isValid que verifica a validade dos dados
  • 16. Criar um filtro de entrada
  • 17. Usar um filtro de entrada
  • 18. ZendValidatorInArray ZendValidatorLessThan ZendValidatorRegexp ZendValidatorStringLength ZendValidatorUri ZendI18nValidator* e muito mais Validar Existe vários validators : ZendValidatorDbRecordExists ZendValidatorCallback ZendValidatorCreditCard ZendValidatorDigits ZendValidatorEmailAddress ZendValidatorGreaterThan
  • 19. Validar Cada validator contém um método isValid
  • 20. Validar Para integrar em um formulário • implementar o interface InputFilterProviderInterface • criar um método publico getInputFilterSpecification • especificar o validator para o campo nesse método
  • 21. Escapar Existe vários formatos : • escapeHTML() • escapeHTMLattr() • escapeUrl() • escapeJs() • escapeCss()
  • 22. Escapar Ou diretamente no view echo $this->escapeHTML($this->message);
  • 23. Logar O componente ZendAuthentification fornece API para se conectar e vários adapters são disponiveis : • Database Table • Digest • HTTP • LDAP Você também pode criar o seu adapter.
  • 24. Controlar acesso Criar um Access Control List • simple • evolutivo • facilmente auditável • deny all por padrão
  • 25. Controlar acesso O que é um resource • objeto ao qual o acesso é controlada O que é um role • objeto que pode pedir o acesso a um recurso
  • 28. Configurar as sessões Usar os validators para as sessões
  • 29. Configurar as sessões Regeração do ID de sessão contra a fixação
  • 30. Criptografar ZendCrypt permite implementar uma criptografia avançada e simple • ZendCryptBlockCipher • ZendCryptHash • ZendCryptHmac • ZendCryptKeyDerivation • ZendCryptPassword • ZendCryptPublicKey • ZendCryptSymmetic
  • 31. Criptografar com BlockCipher ZendCryptBlockCipher usa o adapter Mcrypt • usar para encrypt/decrypt dados sensiveis (symmetric encryption) • gere também a autenticação HMAC Métodos do API • setKey($key) • encrypt($data) • decrypt($data)
  • 33. Password hash Parar de usar • md5 ou sha1 com ou sem salt Recomandado • bcrypt • scrypt
  • 34. Criptografar com Bcrypt ZendCryptPasswordBCrypt Métodos do API • create($password) • verify($password, $hash) • setSalt($salt) • setCost($cost)
  • 36. Prepared Statement Declarações preparadas que são armazenados no servidor de bancos de dados objetivo : • executar consultas sem variação da sintaxe • mudança apenas nos parâmetros • velocidade na execução dos comandos SQL • maior segurança pois os dados são identificados e escapados
  • 37. Usar os prepared statement Parâmetro anonimo Parâmetro nomeado
  • 39. Se manter informado Para ter uma boa segurança, é preciso cuidar do desenvolvimento da sua aplicação mas também das ferramentas usadas. Se mantenha em alerta das falhas de segurança do Zend Framework 2 http://framework.zend.com/security/advisories/
  • 40. Debug Segurar é também criar uma aplicação sem comportamento anormal, sem bug. Usar um debugguer ao invês de var_dump. Zend fornece uma ferramenta de debug com o Zend Server : Z-Ray • Baixa o new Z-Ray Standalone (não precisa do Zend Server) : http://www.zend.com/en/products/z-ray/z-ray-preview • Participe do novo Z-Ray Standalone com seu feedback : https://docs.google.com/a/zend.com/forms/d/1xyg592SHOm5g1JJ5XLa 1KjgB1D0th5v7dGoMU1i2ZgU/viewform?usp=send_form
  • 41. Obrigado :-) Dê seu feedback no http://joind.in/event/view/4001

Notas do Editor

  1. setBinaryOutput(true) pour transformer le base64 en binaire