SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Segurança em PHP
Blinde seu código de você mesmo!
@gustavodasneves
facebook.com/gustavo.nevesgn
gustavo.masterstudioweb.com
www.gustavoneves.com
Sua aplicação é segura?
Simplicidade != vulnerabilidade
  PHP é “fácil” de aprender? SIM!
  PHP é a “primeira linguagem” de muitos
  desenvolvedores? SIM


  Devido a estes fatos, muitas aplicações
  possuem vulnerabilidades consideradas
  básicas. Mas que podem dar muita dor
  de cabeça!
Por onde começar?
Planejamento
“Prevenir é melhor do que remediar”
 Leve em consideração
  falhas de segurança;

 Não deixe para pensar
  em segurança depois de
  tudo pronto;

 Crie um fluxograma ou
  mapa mental das
  entradas fornecidas pelo
  usuário e verifique onde
  podem ser
  interceptadas;
Procure boa documentação e
fontes de pesquisas
 PHP.NET (The Best)
 OWASP.org (*top 10)
 PHPSEC.org (*artigos)
 FORUM-SEGURANÇA.com
Vamos ao que interessa!
Mostrando erros
 Configurações relacionadas a exibição de erros:
   error_reporting() – nível de erro a ser reportado.
    Padrão: E_ALL ^ E_NOTICE
   display_errors: exibir ou não erros na tela
     Em produção, deve ser sempre desabilitada
   log_errors: fazer log dos erros em arquivos
   error_log: arquivo onde será feito o log
Manipulando erros
 set_error_handler() – permite usar uma função
  própria para o tratamento de erros




  set_exception_handler()
TODA ENTRADA DEVE SER FILTRADA E
TODA SAÍDA DEVE SER ”ESCAPADA”
Filtrando as entradas
filter_input()
Problemas comuns
em aplicações
Cuidados com sua URL
 Práticas de SEO lhe ajudarão
 no combate a SQL Injection!
http:/meusite.com.br/?pagina=produtos.php&id=12

                          ou
http://meusite.com.br/produtos/miniatura-sheldon-cooper

URLS amigáveis ajudam bastante por conta da
“validação” que o .HTACCESS pode fazer para você
através de expressões regulares, resultando erro 404 ao
invés de fazer a requisição para seus arquivos .PHP
SQL Injection
O lado negro da força
O Que é?
 Injeção de instruções sql normalmente em
  campos de formulário com o intuito de
  conseguir acesso a informações ou alterações
  na base de dados.


Como evitar ou corrigir?
 Simples: Como quase todas as falhas de
  segurança, basta filtrar entradas e escapar
  saídas
 Nunca conecte ao banco de dados
  como um super-usuário (root), sempre
  utilize usuários personalizados, sem que
  tenha acesso a tudo do banco.
 O PHP oferece diversas funções para
  evitar ataques por SQL injection:
  mysql_real_escape_string(),
  sqlite_escape_string(), addslashes() e
  str_replace(), PDO:quote().
Confiar no usuário
Trate os dados e reze para que ele não seja
           “malandro” demais 
Veja esta singela mensagem de erro:

  Hey Sheldon, sua senha está
           incorreta!

*Não informe dados de usuários ou da aplicação em
               mensagens de erro!
Criptografia
Embaralhe, embaralhe e embaralhe
Aplicando criptografia
•   Extensões de criptografia php (algumas):
     • Hash
     • Mcrypt
     • OpenSSL

SHA-1 é praticamente idêntico ao md5, só que tem 160 bits, o
que acaba criando uma string-resultado maior (40 char.)

Aplicando:

$string = 'O rato roeu a ropa do rei de Roma’;
$codificada = sha1($string);
echo "Resultado da codificação usando sha1: " . $codificada;
// b186b709f7cf5a1d98d413379a66e511df8d59a4
$_REQUEST nunca mais!
 Utilize adequadamente            $_GET,$_POST   e
 $_COOKIE;
 Esta técnica XGH não vai melhorar em nada
 sua vida ;)




 *XGH = Xtreme Go Horse Process
 Não passe informações importantes por
  GET
 Trate todo e qualquer dado que você
  utilize para tomar decisões ou exibir
  informações da base de dados
 Visualize as possíveis brechas de
  segurança e implemente uma solução
  simples para elas.
 Não reinvente a roda. Utilize um
  framework   sempre   que   possível
  (normalmente já implementada a
  camada de segurança)
 Utilize um bom anti-vírus
Para finalizar:
Nenhuma aplicação é
   100% segura! 
OBRIGADO!
     Ficou com dúvidas?
Entre em contato pelo twitter
      @gustavodasneves

Weitere ähnliche Inhalte

Was ist angesagt?

PHP Desenvolvimento Seguro
PHP Desenvolvimento SeguroPHP Desenvolvimento Seguro
PHP Desenvolvimento SeguroFlávio Lisboa
 
Ethical hacking: Conceitos básicos de Testes de penetração
Ethical hacking: Conceitos básicos de Testes de penetraçãoEthical hacking: Conceitos básicos de Testes de penetração
Ethical hacking: Conceitos básicos de Testes de penetraçãoCleórbete Santos
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
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
 
Trabalho de Auditoria e Segurança - Gloogle Hacking
Trabalho de Auditoria e Segurança - Gloogle HackingTrabalho de Auditoria e Segurança - Gloogle Hacking
Trabalho de Auditoria e Segurança - Gloogle HackingAndré Valbert de Jesus Alves
 
Segurança no desenvolvimento web
Segurança no desenvolvimento webSegurança no desenvolvimento web
Segurança no desenvolvimento webRafael Monteiro
 
Qualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHPQualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHPQuality Press
 
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...Rafael Jaques
 
iMasters Intercon Dev WordPress - Segurança em WordPress
iMasters Intercon Dev WordPress - Segurança em WordPressiMasters Intercon Dev WordPress - Segurança em WordPress
iMasters Intercon Dev WordPress - Segurança em WordPressErick Belluci Tedeschi
 
Trabalho google hacking_v1.4_final
Trabalho google hacking_v1.4_finalTrabalho google hacking_v1.4_final
Trabalho google hacking_v1.4_finalRosan Tavares
 
O submundo dos hackers: ataques e defesas
O submundo dos hackers: ataques e defesasO submundo dos hackers: ataques e defesas
O submundo dos hackers: ataques e defesasCleórbete Santos
 
Detecção e prevenção de vulnerabilidades no Wordpress.
Detecção e prevenção de vulnerabilidades no Wordpress.Detecção e prevenção de vulnerabilidades no Wordpress.
Detecção e prevenção de vulnerabilidades no Wordpress.João Neto
 

Was ist angesagt? (20)

Tratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com phpTratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com php
 
Aula 9 - Backdoor
Aula 9 - BackdoorAula 9 - Backdoor
Aula 9 - Backdoor
 
Pentest
Pentest Pentest
Pentest
 
Invasão e Segurança
Invasão e SegurançaInvasão e Segurança
Invasão e Segurança
 
Segurança em PHP
Segurança em PHPSegurança em PHP
Segurança em PHP
 
PHP Desenvolvimento Seguro
PHP Desenvolvimento SeguroPHP Desenvolvimento Seguro
PHP Desenvolvimento Seguro
 
Ethical hacking: Conceitos básicos de Testes de penetração
Ethical hacking: Conceitos básicos de Testes de penetraçãoEthical hacking: Conceitos básicos de Testes de penetração
Ethical hacking: Conceitos básicos de Testes de penetração
 
Aula 10 - Cross Site Scripting (XSS)
Aula 10 - Cross Site Scripting (XSS)Aula 10 - Cross Site Scripting (XSS)
Aula 10 - Cross Site Scripting (XSS)
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
teste de invasão
teste de invasãoteste de invasão
teste de invasão
 
Pentest Auto-Ensinado
Pentest Auto-EnsinadoPentest Auto-Ensinado
Pentest Auto-Ensinado
 
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)
 
Trabalho de Auditoria e Segurança - Gloogle Hacking
Trabalho de Auditoria e Segurança - Gloogle HackingTrabalho de Auditoria e Segurança - Gloogle Hacking
Trabalho de Auditoria e Segurança - Gloogle Hacking
 
Segurança no desenvolvimento web
Segurança no desenvolvimento webSegurança no desenvolvimento web
Segurança no desenvolvimento web
 
Qualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHPQualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHP
 
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...
 
iMasters Intercon Dev WordPress - Segurança em WordPress
iMasters Intercon Dev WordPress - Segurança em WordPressiMasters Intercon Dev WordPress - Segurança em WordPress
iMasters Intercon Dev WordPress - Segurança em WordPress
 
Trabalho google hacking_v1.4_final
Trabalho google hacking_v1.4_finalTrabalho google hacking_v1.4_final
Trabalho google hacking_v1.4_final
 
O submundo dos hackers: ataques e defesas
O submundo dos hackers: ataques e defesasO submundo dos hackers: ataques e defesas
O submundo dos hackers: ataques e defesas
 
Detecção e prevenção de vulnerabilidades no Wordpress.
Detecção e prevenção de vulnerabilidades no Wordpress.Detecção e prevenção de vulnerabilidades no Wordpress.
Detecção e prevenção de vulnerabilidades no Wordpress.
 

Andere mochten auch

Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXOtávio Calaça Xavier
 
Segurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSegurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSamyr Abdo
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações WebCassio Ramos
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...Clavis Segurança da Informação
 
Apostila PHP5 + MySQL + AJAX
Apostila PHP5 + MySQL + AJAXApostila PHP5 + MySQL + AJAX
Apostila PHP5 + MySQL + AJAXDaniel Brandão
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraClavis Segurança da Informação
 
Big Data e Segurança da Informação - 10o Workshop SegInfo - Apresentação
Big Data e Segurança da Informação - 10o Workshop SegInfo - ApresentaçãoBig Data e Segurança da Informação - 10o Workshop SegInfo - Apresentação
Big Data e Segurança da Informação - 10o Workshop SegInfo - ApresentaçãoClavis Segurança da Informação
 
Segurança da informação na web
Segurança da informação na webSegurança da informação na web
Segurança da informação na webRafael Marinho
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoClavis Segurança da Informação
 
Paradigmas de Linguagens de Programação: Conceitos de PHP
Paradigmas de Linguagens de Programação: Conceitos de PHPParadigmas de Linguagens de Programação: Conceitos de PHP
Paradigmas de Linguagens de Programação: Conceitos de PHPFabio Leal
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPFabiano Pereira
 
Experiência e Cases com Auditorias Teste de Invasão em Redes e Sistemas
Experiência e Cases com Auditorias Teste de Invasão em Redes e SistemasExperiência e Cases com Auditorias Teste de Invasão em Redes e Sistemas
Experiência e Cases com Auditorias Teste de Invasão em Redes e SistemasClavis Segurança da Informação
 
Apostila completa-de-php5-mysql-e-ajax
Apostila completa-de-php5-mysql-e-ajaxApostila completa-de-php5-mysql-e-ajax
Apostila completa-de-php5-mysql-e-ajaxhkm4e
 
Analisando eventos de forma inteligente para detecção de intrusos usando ELK
Analisando eventos de forma inteligente para detecção de intrusos usando ELKAnalisando eventos de forma inteligente para detecção de intrusos usando ELK
Analisando eventos de forma inteligente para detecção de intrusos usando ELKSegInfo
 
10 lost historical cities
10 lost historical cities10 lost historical cities
10 lost historical citiesCarlos Pinheiro
 
Ferramentas web de produção de conteúdos
Ferramentas web de produção de conteúdosFerramentas web de produção de conteúdos
Ferramentas web de produção de conteúdosCarlos Pinheiro
 
ESTUDO E ANÁLISE DE VULNERABILIDADES WEB
ESTUDO E ANÁLISE DE VULNERABILIDADES WEBESTUDO E ANÁLISE DE VULNERABILIDADES WEB
ESTUDO E ANÁLISE DE VULNERABILIDADES WEBWagner
 

Andere mochten auch (20)

Desenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAXDesenvolvimento em três camadas com PHP 5, MVC e AJAX
Desenvolvimento em três camadas com PHP 5, MVC e AJAX
 
Segurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSegurança PHP - por Samyr Abdo
Segurança PHP - por Samyr Abdo
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações Web
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
 
Apostila PHP5 + MySQL + AJAX
Apostila PHP5 + MySQL + AJAXApostila PHP5 + MySQL + AJAX
Apostila PHP5 + MySQL + AJAX
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
 
Segurança PHP em 2016
Segurança PHP em 2016Segurança PHP em 2016
Segurança PHP em 2016
 
Big Data e Segurança da Informação - 10o Workshop SegInfo - Apresentação
Big Data e Segurança da Informação - 10o Workshop SegInfo - ApresentaçãoBig Data e Segurança da Informação - 10o Workshop SegInfo - Apresentação
Big Data e Segurança da Informação - 10o Workshop SegInfo - Apresentação
 
Segurança da informação na web
Segurança da informação na webSegurança da informação na web
Segurança da informação na web
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
 
Paradigmas de Linguagens de Programação: Conceitos de PHP
Paradigmas de Linguagens de Programação: Conceitos de PHPParadigmas de Linguagens de Programação: Conceitos de PHP
Paradigmas de Linguagens de Programação: Conceitos de PHP
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASP
 
Experiência e Cases com Auditorias Teste de Invasão em Redes e Sistemas
Experiência e Cases com Auditorias Teste de Invasão em Redes e SistemasExperiência e Cases com Auditorias Teste de Invasão em Redes e Sistemas
Experiência e Cases com Auditorias Teste de Invasão em Redes e Sistemas
 
Apostila completa-de-php5-mysql-e-ajax
Apostila completa-de-php5-mysql-e-ajaxApostila completa-de-php5-mysql-e-ajax
Apostila completa-de-php5-mysql-e-ajax
 
O YouTube na educação
O YouTube na educaçãoO YouTube na educação
O YouTube na educação
 
Bibliotecas digitais
Bibliotecas digitaisBibliotecas digitais
Bibliotecas digitais
 
Analisando eventos de forma inteligente para detecção de intrusos usando ELK
Analisando eventos de forma inteligente para detecção de intrusos usando ELKAnalisando eventos de forma inteligente para detecção de intrusos usando ELK
Analisando eventos de forma inteligente para detecção de intrusos usando ELK
 
10 lost historical cities
10 lost historical cities10 lost historical cities
10 lost historical cities
 
Ferramentas web de produção de conteúdos
Ferramentas web de produção de conteúdosFerramentas web de produção de conteúdos
Ferramentas web de produção de conteúdos
 
ESTUDO E ANÁLISE DE VULNERABILIDADES WEB
ESTUDO E ANÁLISE DE VULNERABILIDADES WEBESTUDO E ANÁLISE DE VULNERABILIDADES WEB
ESTUDO E ANÁLISE DE VULNERABILIDADES WEB
 

Ähnlich wie Segurança em PHP - Blinde seu código de você mesmo!

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
 
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
 
Construindo uma aplicação PHP à Prova de Balas - Rafael Jaques
Construindo uma aplicação PHP à Prova de Balas - Rafael JaquesConstruindo uma aplicação PHP à Prova de Balas - Rafael Jaques
Construindo uma aplicação PHP à Prova de Balas - Rafael JaquesTchelinux
 
PHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e SeguraPHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e SeguraKleber Silva
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Gambiarra e PHP. Por que você deveria usar um WAF?
Gambiarra e PHP. Por que você deveria usar um WAF?Gambiarra e PHP. Por que você deveria usar um WAF?
Gambiarra e PHP. Por que você deveria usar um WAF?Sucuri
 
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 SentinelasAlexandro Silva
 
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...Tchelinux
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEMagno Logan
 
Seminário PHP Injection/ SQL Injection
Seminário PHP Injection/ SQL InjectionSeminário PHP Injection/ SQL Injection
Seminário PHP Injection/ SQL InjectionDavi Rodrigues
 
Aprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosAprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosRichard Barros
 
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasMagno Logan
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...Magno Logan
 
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
 
Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguroCharles Fortes
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super heroElton Minetto
 

Ähnlich wie Segurança em PHP - Blinde seu código de você mesmo! (20)

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...
 
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...
 
Construindo uma aplicação PHP à Prova de Balas - Rafael Jaques
Construindo uma aplicação PHP à Prova de Balas - Rafael JaquesConstruindo uma aplicação PHP à Prova de Balas - Rafael Jaques
Construindo uma aplicação PHP à Prova de Balas - Rafael Jaques
 
Defensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon JuniorDefensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon Junior
 
PHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e SeguraPHP 5 de Forma Correta e Segura
PHP 5 de Forma Correta e Segura
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Gambiarra e PHP. Por que você deveria usar um WAF?
Gambiarra e PHP. Por que você deveria usar um WAF?Gambiarra e PHP. Por que você deveria usar um WAF?
Gambiarra e PHP. Por que você deveria usar um WAF?
 
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
 
POG nunca mais - SOLISC
POG nunca mais - SOLISCPOG nunca mais - SOLISC
POG nunca mais - SOLISC
 
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
PHP & Segurança: Blindando Aplicações Web - Rafael Jaques - Tchelinux Bento G...
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
 
Seminário PHP Injection/ SQL Injection
Seminário PHP Injection/ SQL InjectionSeminário PHP Injection/ SQL Injection
Seminário PHP Injection/ SQL Injection
 
Owasp web app_flaws
Owasp web app_flawsOwasp web app_flaws
Owasp web app_flaws
 
Aprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard BarrosAprendendo a criar plugins para o Wordpress - Richard Barros
Aprendendo a criar plugins para o Wordpress - Richard Barros
 
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner EliasTratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
Tratando as vulnerabilidades do Top 10 do OWASP by Wagner Elias
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
 
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...
 
Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguro
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 

Mehr von Gustavo Neves

Rolagem infinita... o que muda realmente na experiência do usuário e no front...
Rolagem infinita... o que muda realmente na experiência do usuário e no front...Rolagem infinita... o que muda realmente na experiência do usuário e no front...
Rolagem infinita... o que muda realmente na experiência do usuário e no front...Gustavo Neves
 
Palestra - Sua ideia pode gerar uma startup de sucesso? E se você estiver err...
Palestra - Sua ideia pode gerar uma startup de sucesso? E se você estiver err...Palestra - Sua ideia pode gerar uma startup de sucesso? E se você estiver err...
Palestra - Sua ideia pode gerar uma startup de sucesso? E se você estiver err...Gustavo Neves
 
Fisl 16 - Proteja sua aplicação de você mesmo
Fisl 16 - Proteja sua aplicação de você mesmoFisl 16 - Proteja sua aplicação de você mesmo
Fisl 16 - Proteja sua aplicação de você mesmoGustavo Neves
 
Software livre no brasil
Software livre no brasilSoftware livre no brasil
Software livre no brasilGustavo Neves
 
Errar é bom e faz parte... mas não jogue sua ideia fora!
Errar é bom e faz parte... mas não jogue sua ideia fora!Errar é bom e faz parte... mas não jogue sua ideia fora!
Errar é bom e faz parte... mas não jogue sua ideia fora!Gustavo Neves
 
Engenharia de Software - Desenvolvimento Iterativo e Incremental
Engenharia de Software - Desenvolvimento Iterativo e IncrementalEngenharia de Software - Desenvolvimento Iterativo e Incremental
Engenharia de Software - Desenvolvimento Iterativo e IncrementalGustavo Neves
 
Comparativo de custo computacional / Tempo de carregamento das ferramentas de...
Comparativo de custo computacional / Tempo de carregamento das ferramentas de...Comparativo de custo computacional / Tempo de carregamento das ferramentas de...
Comparativo de custo computacional / Tempo de carregamento das ferramentas de...Gustavo Neves
 
DDoS - Ataque de negação de serviço
DDoS - Ataque de negação de serviçoDDoS - Ataque de negação de serviço
DDoS - Ataque de negação de serviçoGustavo Neves
 

Mehr von Gustavo Neves (8)

Rolagem infinita... o que muda realmente na experiência do usuário e no front...
Rolagem infinita... o que muda realmente na experiência do usuário e no front...Rolagem infinita... o que muda realmente na experiência do usuário e no front...
Rolagem infinita... o que muda realmente na experiência do usuário e no front...
 
Palestra - Sua ideia pode gerar uma startup de sucesso? E se você estiver err...
Palestra - Sua ideia pode gerar uma startup de sucesso? E se você estiver err...Palestra - Sua ideia pode gerar uma startup de sucesso? E se você estiver err...
Palestra - Sua ideia pode gerar uma startup de sucesso? E se você estiver err...
 
Fisl 16 - Proteja sua aplicação de você mesmo
Fisl 16 - Proteja sua aplicação de você mesmoFisl 16 - Proteja sua aplicação de você mesmo
Fisl 16 - Proteja sua aplicação de você mesmo
 
Software livre no brasil
Software livre no brasilSoftware livre no brasil
Software livre no brasil
 
Errar é bom e faz parte... mas não jogue sua ideia fora!
Errar é bom e faz parte... mas não jogue sua ideia fora!Errar é bom e faz parte... mas não jogue sua ideia fora!
Errar é bom e faz parte... mas não jogue sua ideia fora!
 
Engenharia de Software - Desenvolvimento Iterativo e Incremental
Engenharia de Software - Desenvolvimento Iterativo e IncrementalEngenharia de Software - Desenvolvimento Iterativo e Incremental
Engenharia de Software - Desenvolvimento Iterativo e Incremental
 
Comparativo de custo computacional / Tempo de carregamento das ferramentas de...
Comparativo de custo computacional / Tempo de carregamento das ferramentas de...Comparativo de custo computacional / Tempo de carregamento das ferramentas de...
Comparativo de custo computacional / Tempo de carregamento das ferramentas de...
 
DDoS - Ataque de negação de serviço
DDoS - Ataque de negação de serviçoDDoS - Ataque de negação de serviço
DDoS - Ataque de negação de serviço
 

Segurança em PHP - Blinde seu código de você mesmo!

  • 1. Segurança em PHP Blinde seu código de você mesmo!
  • 4. Simplicidade != vulnerabilidade PHP é “fácil” de aprender? SIM! PHP é a “primeira linguagem” de muitos desenvolvedores? SIM Devido a estes fatos, muitas aplicações possuem vulnerabilidades consideradas básicas. Mas que podem dar muita dor de cabeça!
  • 6. Planejamento “Prevenir é melhor do que remediar”  Leve em consideração falhas de segurança;  Não deixe para pensar em segurança depois de tudo pronto;  Crie um fluxograma ou mapa mental das entradas fornecidas pelo usuário e verifique onde podem ser interceptadas;
  • 7. Procure boa documentação e fontes de pesquisas  PHP.NET (The Best)  OWASP.org (*top 10)  PHPSEC.org (*artigos)  FORUM-SEGURANÇA.com
  • 8. Vamos ao que interessa!
  • 9. Mostrando erros  Configurações relacionadas a exibição de erros:  error_reporting() – nível de erro a ser reportado. Padrão: E_ALL ^ E_NOTICE  display_errors: exibir ou não erros na tela  Em produção, deve ser sempre desabilitada  log_errors: fazer log dos erros em arquivos  error_log: arquivo onde será feito o log
  • 10. Manipulando erros  set_error_handler() – permite usar uma função própria para o tratamento de erros  set_exception_handler()
  • 11. TODA ENTRADA DEVE SER FILTRADA E TODA SAÍDA DEVE SER ”ESCAPADA”
  • 14.
  • 15. Cuidados com sua URL Práticas de SEO lhe ajudarão no combate a SQL Injection!
  • 16. http:/meusite.com.br/?pagina=produtos.php&id=12 ou http://meusite.com.br/produtos/miniatura-sheldon-cooper URLS amigáveis ajudam bastante por conta da “validação” que o .HTACCESS pode fazer para você através de expressões regulares, resultando erro 404 ao invés de fazer a requisição para seus arquivos .PHP
  • 17. SQL Injection O lado negro da força
  • 18. O Que é?  Injeção de instruções sql normalmente em campos de formulário com o intuito de conseguir acesso a informações ou alterações na base de dados. Como evitar ou corrigir?  Simples: Como quase todas as falhas de segurança, basta filtrar entradas e escapar saídas
  • 19.  Nunca conecte ao banco de dados como um super-usuário (root), sempre utilize usuários personalizados, sem que tenha acesso a tudo do banco.  O PHP oferece diversas funções para evitar ataques por SQL injection: mysql_real_escape_string(), sqlite_escape_string(), addslashes() e str_replace(), PDO:quote().
  • 20. Confiar no usuário Trate os dados e reze para que ele não seja “malandro” demais 
  • 21. Veja esta singela mensagem de erro: Hey Sheldon, sua senha está incorreta! *Não informe dados de usuários ou da aplicação em mensagens de erro!
  • 23. Aplicando criptografia • Extensões de criptografia php (algumas): • Hash • Mcrypt • OpenSSL SHA-1 é praticamente idêntico ao md5, só que tem 160 bits, o que acaba criando uma string-resultado maior (40 char.) Aplicando: $string = 'O rato roeu a ropa do rei de Roma’; $codificada = sha1($string); echo "Resultado da codificação usando sha1: " . $codificada; // b186b709f7cf5a1d98d413379a66e511df8d59a4
  • 24. $_REQUEST nunca mais! Utilize adequadamente $_GET,$_POST e $_COOKIE; Esta técnica XGH não vai melhorar em nada sua vida ;) *XGH = Xtreme Go Horse Process
  • 25.
  • 26.  Não passe informações importantes por GET  Trate todo e qualquer dado que você utilize para tomar decisões ou exibir informações da base de dados  Visualize as possíveis brechas de segurança e implemente uma solução simples para elas.  Não reinvente a roda. Utilize um framework sempre que possível (normalmente já implementada a camada de segurança)  Utilize um bom anti-vírus
  • 27. Para finalizar: Nenhuma aplicação é 100% segura! 
  • 28. OBRIGADO! Ficou com dúvidas? Entre em contato pelo twitter @gustavodasneves

Hinweis der Redaktion

  1. Antes de iniciar… fica a pergunta: passa para o próximo slide
  2. Próximo: Por onde começar?
  3. No próximo slide tem o exemplo sobre carregar arquivos via get
  4. Não é a maior falha de segurança, porém é muito importante que você se preocupe em não mostrar seus arquivos e muito menos impedir que usuários tenham acesso direto a arquivos de script e outros
  5. Não é a maior falha de segurança, porém é muito importante que você se preocupe em não mostrar seus arquivos e muito menos impedir que usuários tenham acesso direto a arquivos de script e outros
  6. No próximo slide tem o exemplo sobre carregar arquivos via get
  7. No próximo slide tem o exemplo sobre carregar arquivos via get