SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Criando aplicações 
seguras com PHP 
Leandro Lugaresi 
TcheLinux - Bento Gonçalves - 08/11/14
Quem sou eu? 
→ Graduado em Análise e 
desenvolvimento de sistemas pela 
Ftec Bento Gonçalves 
→ Desenvolvedor com 3 anos de 
experiência em PHP/MySQL 
→ Apaixonado por segurança e pelo 
mundo open source 
https://github.com/leandro-lugaresi 
http://www.leandrolugaresi.com.br/
Por onde começar? 
→ Estude! 
⤷ http://br.phptherightway.com/ 
⤷ https://www.owasp.org 
⤷ https://github.com/php/php-langspec/ 
⤷ http://www.amazon.com/Essential-PHP-Security-Chris- 
Shiflett/dp/059600656X/ 
⤷ http://www.amazon.com/Pro-PHP-Security-Application- 
Implementation/dp/1430233184/ 
⤷ http://www.phpit.com.br/artigos/hangout-construindo-uma-aplicacao-php- 
a-prova-de-balas.phpit 
→ Não confie no seu usuário 
→ Utilize bibliotecas e frameworks (modernos) reconhecidos pelo mercado.
OWASP top 10 
https://www.owasp.org/index.php/Main_Page 
http://owasptop10.googlecode.com/files/OWASP_Top_10_-_2013_Brazilian_Portuguese.
Códigos de terceiros 
O Composer foi sem dúvidas uma das melhores coisas que aconteceram para 
o PHP nos últimos anos. Ele tornou a obtenção de código de terceiros muito 
mais fácil, porém deve se ter alguns cuidados na sua utilização. 
→ Utilize bibliotecas e complementos estáveis e que tenham uma 
comunidade em torno delas; 
→ Identificar os componentes e suas versões que você está usando, 
incluindo todas as suas dependências; 
→ Monitorar a segurança destes componentes. 
Ferramentas para auxiliar no trabalho: 
→ https://security.sensiolabs.org/check 
→ https://www.versioneye.com/
Trabalhando com 
Erros 
Funções: 
→ error_reporting() - Nível de erro a ser reportado 
→ display_errors() - Exibir ou não os erros na tela 
Aprenda a trabalhar com logs! 
Bibliotecas: 
→ monolog/monolog 
→ zendframework/zend-log
Sanitização 
Toda entrada deve ser filtrada e toda saída deve ser “escapada” 
Funções do php: 
→ htmlspecialchars() 
→ htmlentities() 
→ escapeshellcmd() 
→ escapeshellarg() 
→ filter_input() 
→ strip_tags() 
Bibliotecas: 
→ HTMLPurifier 
→ OWASP AntiSamy 
→ Templates Engines (Twig, 
Smarty)
SQL Injection 
Definição: Injeção de instruções SQL dentro de uma consulta (query). 
Como evitar: 
→ addslashes() 
→ mysql_real_scape_string() 
→ Prepared Statements 
→ ORM* 
ORM librarys: 
→ Doctrine 2 
→ RedBean 
→ Propel
Passwords 
Opções inseguras: 
→ Texto plano/ base64 
→ MD4, MD5 
→ SHA1, SHA256, SHA512 
Problemas: 
→ Foram feitos para serem velozes 
→ GPUs modernas podem realizar 
200M/s interações SHA512 - 
hashcat 
Opções seguras: 
→ Bcrypt 
→ PBKDF2 
Observações: 
→ Bcrypt cost >= 14 
→ PBKDF2 interations = 100000
Criptografia 
Não utilize: 
→ DES 
→ 3DES 
→ ECB mode 
Opções seguras: 
→ AES (rijndael-128) 
→ rijndael-256 
→ blowfish 
Bibliotecas: 
→ zendframework/zend-crypt 
→ http://phpsec.owasp.org/ 
Importante! Não utilize rand() e 
mt_rand(), elas não são opções 
seguras. Utilize 
openssl_random_pseudo_bytes() ou 
mcrypt_create_iv() com o parâmetro 
MCRYPT_DEV_URANDOM.
Two Step Authentication 
Para o usuário ter a senha roubada é mais fácil do que você pensa! A 
verificação em duas etapas (2FA) pode ajudar a manter afastadas pessoas má 
intencionadas, mesmo que elas saibam a senha do seu usuário. 
Funcionamento: 
Adição de uma camada a mais de segurança. Após o login ser feito o servidor 
manda um código verificador através de SMS, e-mail, hardware token ou 
algum app instalado em seu smartphone. 
Problemas: 
A implementação de um sistema 2FA é geralmente custosa pois é necessário 
a contratação de uma empresa que preste este serviço.
Google Authenticator 
O Google Authenticator é um aplicativo para Android, IPhone e BlackBarry, ele 
é utilizado pelo Google nas verificações em duas etapas de seus serviços. 
O aplicativo acabou virando um serviço gratuito e pode ser utilizado por outros 
sistemas que queiram implementar o 2FA. 
Informações complementares: 
→ https://www.google.com/landing/2step/index.html 
→ https://code.google.com/p/google-authenticator/ 
→ https://github.com/leandro-lugaresi/google-authenticator
Muito Obrigado :)

Weitere ähnliche Inhalte

Was ist angesagt?

por Bruno Milreu Filipe "Casos avançados de teste de invasão – Indo além do “...
por Bruno Milreu Filipe "Casos avançados de teste de invasão – Indo além do “...por Bruno Milreu Filipe "Casos avançados de teste de invasão – Indo além do “...
por Bruno Milreu Filipe "Casos avançados de teste de invasão – Indo além do “...SegInfo
 
Introdução ao teste de intrusão em redes
Introdução ao teste de intrusão em redesIntrodução ao teste de intrusão em redes
Introdução ao teste de intrusão em redesAlisson Fuckner
 
Direct Web Remoting Sun Tech Days2007
Direct Web Remoting Sun Tech Days2007Direct Web Remoting Sun Tech Days2007
Direct Web Remoting Sun Tech Days2007Handerson Frota
 
Palestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de RedesPalestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de RedesBruno Alexandre
 
Construindo uma Aplicação PHP à Prova de Balas - 2010
Construindo uma Aplicação PHP à Prova de Balas - 2010Construindo uma Aplicação PHP à Prova de Balas - 2010
Construindo uma Aplicação PHP à Prova de Balas - 2010Rafael Jaques
 
Segurança em Aplicações ASP.NET (XSS e CSRF)
Segurança em Aplicações ASP.NET (XSS e CSRF)Segurança em Aplicações ASP.NET (XSS e CSRF)
Segurança em Aplicações ASP.NET (XSS e CSRF)Luciano Gerhardt
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php segurosDouglas V. Pasqua
 
A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01Reinaldo Junior
 
Segurança no desenvolvimento web
Segurança no desenvolvimento webSegurança no desenvolvimento web
Segurança no desenvolvimento webRafael Monteiro
 
Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguroCharles Fortes
 
MSDN Webcast - Melhores práticas cross browser
MSDN Webcast - Melhores práticas cross browserMSDN Webcast - Melhores práticas cross browser
MSDN Webcast - Melhores práticas cross browserJP Clementi
 
Comet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoComet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoHanderson Frota
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 

Was ist angesagt? (20)

por Bruno Milreu Filipe "Casos avançados de teste de invasão – Indo além do “...
por Bruno Milreu Filipe "Casos avançados de teste de invasão – Indo além do “...por Bruno Milreu Filipe "Casos avançados de teste de invasão – Indo além do “...
por Bruno Milreu Filipe "Casos avançados de teste de invasão – Indo além do “...
 
Aula 8 - SQL Injection
Aula 8 - SQL InjectionAula 8 - SQL Injection
Aula 8 - SQL Injection
 
Introdução ao teste de intrusão em redes
Introdução ao teste de intrusão em redesIntrodução ao teste de intrusão em redes
Introdução ao teste de intrusão em redes
 
Conceitos de Ajax
Conceitos de AjaxConceitos de Ajax
Conceitos de Ajax
 
Direct Web Remoting Sun Tech Days2007
Direct Web Remoting Sun Tech Days2007Direct Web Remoting Sun Tech Days2007
Direct Web Remoting Sun Tech Days2007
 
Palestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de RedesPalestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de Redes
 
Construindo uma Aplicação PHP à Prova de Balas - 2010
Construindo uma Aplicação PHP à Prova de Balas - 2010Construindo uma Aplicação PHP à Prova de Balas - 2010
Construindo uma Aplicação PHP à Prova de Balas - 2010
 
Segurança Web com PHP5
Segurança Web com PHP5Segurança Web com PHP5
Segurança Web com PHP5
 
Segurança em Aplicações ASP.NET (XSS e CSRF)
Segurança em Aplicações ASP.NET (XSS e CSRF)Segurança em Aplicações ASP.NET (XSS e CSRF)
Segurança em Aplicações ASP.NET (XSS e CSRF)
 
Aula 9 - Backdoor
Aula 9 - BackdoorAula 9 - Backdoor
Aula 9 - Backdoor
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
 
Struts2 remote codeexecution
Struts2 remote codeexecutionStruts2 remote codeexecution
Struts2 remote codeexecution
 
A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01A1 - Sql Injection na Prática Parte 01
A1 - Sql Injection na Prática Parte 01
 
Segurança no desenvolvimento web
Segurança no desenvolvimento webSegurança no desenvolvimento web
Segurança no desenvolvimento web
 
Invasão e Segurança
Invasão e SegurançaInvasão e Segurança
Invasão e Segurança
 
Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguro
 
Reverse Ajax Dwr
Reverse Ajax DwrReverse Ajax Dwr
Reverse Ajax Dwr
 
MSDN Webcast - Melhores práticas cross browser
MSDN Webcast - Melhores práticas cross browserMSDN Webcast - Melhores práticas cross browser
MSDN Webcast - Melhores práticas cross browser
 
Comet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - ResumoComet - ReverseAjax com DWR - Resumo
Comet - ReverseAjax com DWR - Resumo
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 

Andere mochten auch

Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para phpFabio B. Silva
 
Doctrine 2.0: A evolução da persistência em PHP
Doctrine 2.0: A evolução da persistência em PHPDoctrine 2.0: A evolução da persistência em PHP
Doctrine 2.0: A evolução da persistência em PHPGuilherme Blanco
 
Doctrine2 In 10 Minutes
Doctrine2 In 10 MinutesDoctrine2 In 10 Minutes
Doctrine2 In 10 MinutesRyan Weaver
 
Prevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoPrevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoEr Galvão Abbott
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
Aplicações realtime com gRPC
Aplicações realtime com gRPCAplicações realtime com gRPC
Aplicações realtime com gRPCLeandro Lugaresi
 

Andere mochten auch (7)

Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para php
 
Doctrine 2.0: A evolução da persistência em PHP
Doctrine 2.0: A evolução da persistência em PHPDoctrine 2.0: A evolução da persistência em PHP
Doctrine 2.0: A evolução da persistência em PHP
 
Doctrine2 In 10 Minutes
Doctrine2 In 10 MinutesDoctrine2 In 10 Minutes
Doctrine2 In 10 Minutes
 
Prevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU códigoPrevenindo XSS: Execute apenas o SEU código
Prevenindo XSS: Execute apenas o SEU código
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Aplicações realtime com gRPC
Aplicações realtime com gRPCAplicações realtime com gRPC
Aplicações realtime com gRPC
 
Microservices e RabbitMQ
Microservices e RabbitMQMicroservices e RabbitMQ
Microservices e RabbitMQ
 

Ähnlich wie Palestra criando aplicações seguras com php (2)

PHP Desenvolvimento Seguro
PHP Desenvolvimento SeguroPHP Desenvolvimento Seguro
PHP Desenvolvimento SeguroFlávio Lisboa
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos WebSergio Henrique
 
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
 
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...Thiago Dieb
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
 Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi... Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...Alexandro Silva
 
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 SentinelasSegInfo
 
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...As Zone
 
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Thiago Dieb
 
XSS Desvendado
XSS DesvendadoXSS Desvendado
XSS Desvendadoricardophp
 
Introdução à Segurança da Informação
Introdução à Segurança da InformaçãoIntrodução à Segurança da Informação
Introdução à Segurança da InformaçãoVinicius Marangoni
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSThiago Rodrigues
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Alex Hübner
 
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...Thiago Dieb
 

Ähnlich wie Palestra criando aplicações seguras com php (2) (20)

PHP Desenvolvimento Seguro
PHP Desenvolvimento SeguroPHP Desenvolvimento Seguro
PHP Desenvolvimento Seguro
 
Segurança de Aplicações WEB e OpenSource
Segurança de Aplicações WEB e OpenSourceSegurança de Aplicações WEB e OpenSource
Segurança de Aplicações WEB e OpenSource
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
 
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...
 
Segurança em PHP
Segurança em PHPSegurança em PHP
Segurança em PHP
 
Java security
Java securityJava security
Java security
 
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...Palestra - Darkmira Tour PHP 2016  - A ilusão das referências sobre desenvolv...
Palestra - Darkmira Tour PHP 2016 - A ilusão das referências sobre desenvolv...
 
Pentest conisli07
Pentest conisli07Pentest conisli07
Pentest conisli07
 
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
 Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi... Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
Proteja sua Hovercraft: Mantendo sua nave livre dos Sentinelas ( Versão Segi...
 
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
 
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
 
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
 
XSS Desvendado
XSS DesvendadoXSS Desvendado
XSS Desvendado
 
Introdução à Segurança da Informação
Introdução à Segurança da InformaçãoIntrodução à Segurança da Informação
Introdução à Segurança da Informação
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSS
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?
 
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
 
Sql injection
Sql injectionSql injection
Sql injection
 
Teste de segurança do lado servidor - Nível 1
Teste de segurança do lado servidor - Nível 1Teste de segurança do lado servidor - Nível 1
Teste de segurança do lado servidor - Nível 1
 

Palestra criando aplicações seguras com php (2)

  • 1. Criando aplicações seguras com PHP Leandro Lugaresi TcheLinux - Bento Gonçalves - 08/11/14
  • 2. Quem sou eu? → Graduado em Análise e desenvolvimento de sistemas pela Ftec Bento Gonçalves → Desenvolvedor com 3 anos de experiência em PHP/MySQL → Apaixonado por segurança e pelo mundo open source https://github.com/leandro-lugaresi http://www.leandrolugaresi.com.br/
  • 3. Por onde começar? → Estude! ⤷ http://br.phptherightway.com/ ⤷ https://www.owasp.org ⤷ https://github.com/php/php-langspec/ ⤷ http://www.amazon.com/Essential-PHP-Security-Chris- Shiflett/dp/059600656X/ ⤷ http://www.amazon.com/Pro-PHP-Security-Application- Implementation/dp/1430233184/ ⤷ http://www.phpit.com.br/artigos/hangout-construindo-uma-aplicacao-php- a-prova-de-balas.phpit → Não confie no seu usuário → Utilize bibliotecas e frameworks (modernos) reconhecidos pelo mercado.
  • 4. OWASP top 10 https://www.owasp.org/index.php/Main_Page http://owasptop10.googlecode.com/files/OWASP_Top_10_-_2013_Brazilian_Portuguese.
  • 5. Códigos de terceiros O Composer foi sem dúvidas uma das melhores coisas que aconteceram para o PHP nos últimos anos. Ele tornou a obtenção de código de terceiros muito mais fácil, porém deve se ter alguns cuidados na sua utilização. → Utilize bibliotecas e complementos estáveis e que tenham uma comunidade em torno delas; → Identificar os componentes e suas versões que você está usando, incluindo todas as suas dependências; → Monitorar a segurança destes componentes. Ferramentas para auxiliar no trabalho: → https://security.sensiolabs.org/check → https://www.versioneye.com/
  • 6. Trabalhando com Erros Funções: → error_reporting() - Nível de erro a ser reportado → display_errors() - Exibir ou não os erros na tela Aprenda a trabalhar com logs! Bibliotecas: → monolog/monolog → zendframework/zend-log
  • 7. Sanitização Toda entrada deve ser filtrada e toda saída deve ser “escapada” Funções do php: → htmlspecialchars() → htmlentities() → escapeshellcmd() → escapeshellarg() → filter_input() → strip_tags() Bibliotecas: → HTMLPurifier → OWASP AntiSamy → Templates Engines (Twig, Smarty)
  • 8. SQL Injection Definição: Injeção de instruções SQL dentro de uma consulta (query). Como evitar: → addslashes() → mysql_real_scape_string() → Prepared Statements → ORM* ORM librarys: → Doctrine 2 → RedBean → Propel
  • 9. Passwords Opções inseguras: → Texto plano/ base64 → MD4, MD5 → SHA1, SHA256, SHA512 Problemas: → Foram feitos para serem velozes → GPUs modernas podem realizar 200M/s interações SHA512 - hashcat Opções seguras: → Bcrypt → PBKDF2 Observações: → Bcrypt cost >= 14 → PBKDF2 interations = 100000
  • 10. Criptografia Não utilize: → DES → 3DES → ECB mode Opções seguras: → AES (rijndael-128) → rijndael-256 → blowfish Bibliotecas: → zendframework/zend-crypt → http://phpsec.owasp.org/ Importante! Não utilize rand() e mt_rand(), elas não são opções seguras. Utilize openssl_random_pseudo_bytes() ou mcrypt_create_iv() com o parâmetro MCRYPT_DEV_URANDOM.
  • 11. Two Step Authentication Para o usuário ter a senha roubada é mais fácil do que você pensa! A verificação em duas etapas (2FA) pode ajudar a manter afastadas pessoas má intencionadas, mesmo que elas saibam a senha do seu usuário. Funcionamento: Adição de uma camada a mais de segurança. Após o login ser feito o servidor manda um código verificador através de SMS, e-mail, hardware token ou algum app instalado em seu smartphone. Problemas: A implementação de um sistema 2FA é geralmente custosa pois é necessário a contratação de uma empresa que preste este serviço.
  • 12. Google Authenticator O Google Authenticator é um aplicativo para Android, IPhone e BlackBarry, ele é utilizado pelo Google nas verificações em duas etapas de seus serviços. O aplicativo acabou virando um serviço gratuito e pode ser utilizado por outros sistemas que queiram implementar o 2FA. Informações complementares: → https://www.google.com/landing/2step/index.html → https://code.google.com/p/google-authenticator/ → https://github.com/leandro-lugaresi/google-authenticator