SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Desenvolvimento
Seguro com PHP
Palestrante: Flávio Gomes da Silva Lisboa
www.fgsl.eti.br
Desenvolvimento
Seguro com PHP
“Com um grande poder,
vem uma grande
responsabilidade”.
Desenvolvimento Seguro com PHP
Poder e Responsabilidade
“Ben Parker avisou uma vez seu jovem sobrinho Peter Peter, cujo alter-
ego super-herói é o Homem-Aranha, que “com um grande poder, vem
uma grande responsabilidade”.
Assim é com a segurança em aplicações PHP. O PHP fornece um rico
conjunto de ferramentas com imenso poder – alguns tem argumentado
que talvez seja muito poder – e este poder, quando usado com
cuidadosa atenção aos detalhes, permite a criação de aplicações
complexas e robustas.
Por outro lado, sem essa atenção para os detalhes, usuários maliciosos
podem usar o poder do PHP para seus próprios interesses, atacando
aplicações de várias formas.”
Introdução
Zend PHP 5 Certification Study Guide
Desenvolvimento Seguro com PHP
Falta de segurança: mito do PHP
A maior fraqueza na maioria dos programas PHP não é inerente a
linguagem em si, mas meramente um problema de código escrito
desconsiderando a segurança.
Por essa razão, você sempre deve investir um pouco de tempo
considerando as implicações de um certo pedaço de código, para ter
certeza do dano possível se uma variável não esperada for submetida
ao mesmo.
Introdução
Manual do PHP: www.php.net
Desenvolvimento Seguro com PHP
Conceitos e Práticas
Toda Entrada está Doente
Lista Branca versus Lista Negra
Filtro de Entrada
Tratamento de Saída
Register Globals
Segurança de Website
Formulários Falsificados
Cross-Site Scripting
Cross-Site Request Forgeries
Segurança de Banco de Dados
Segurança de Sessão
Segurança do Sistema de Arquivos
Remote Code Injection
Command Injection
Algumas Dicas Importantes
Agenda
Desenvolvimento Seguro com PHP
Toda Entrada está Doente
►Se o dado se origina de uma fonte externa, ele não pode ser confiável.
►Não temos certeza de os dados contém caracteres que podem ser
executados no contexto errado.
►Dados de todas as matrizes superglobais, exceto $_SESSION devem
ser considerados doentes.
CONCLUSÃO: Todo dado deve ser filtrado.
Conceitos e Práticas
Zend PHP 5 Certification Study Guide
Desenvolvimento Seguro com PHP
Lista Branca versus Lista Negra
►Lista Negra
→ Menos restritiva.
→ Há um conjunto específico de palavras que são consideradas
inapropriadas.
→ Qualquer palavra que não conste da lista é permitida.
→ Listas negras devem ser modificadas continuamente, e
expandidas quando novos vetores de ataque tornam-se evidentes.
►Lista Branca
→ Mais restritiva.
→ Identifica somente os dados que são aceitáveis.
→ Mantém controle sobre os parâmetros que mudam e não os deixa
aos caprichos de pretensos atacantes.
CONCLUSÃO: Listas brancas oferecem mais proteção contra ataque do
que listas negras.
Conceitos e Práticas
Desenvolvimento Seguro com PHP
Filtro de Entrada
Uma vez que toda entrada é doente e não pode ser confiável, é
necessário filtrar sua entrada de modo a garantir que a entrada recebida
seja a esperada.
Para fazer isto, use uma abordagem de lista branca.
Filtrar com uma abordagem de lista branca coloca o controle firmemente
em suas mãos e assegura que sua aplicação não receberá dados
maliciosos.
Você deve forçar o usuário a fornecer dados corretos e então tentar
limpar e sanitizá-los por conta própria.
Funções: addslashes(), ctype_*(), html_entity_decode(), htmlentities(),
strip_tags(), stripslashes(), trim(), entre outras.
Conceitos e Práticas
Desenvolvimento Seguro com PHP
Tratamento de Saída
Assim como a filtragem de entrada protege sua aplicação de dados
maliciosos e nocivos, o tratamento de saída protege o cliente e o
usuário de comandos potencialmente perigosos.
A saída deve ser tratada porque os clientes – navegadores Web,
servidores de banco de dados, e assim por diante – freqüentemente
executam uma ação quando encontram caracteres especiais.
Funções: addslashes(), ctype_*(), html_entity_decode(), htmlentities(),
strip_tags(), stripslashes(), trim(), entre outras.
Conceitos e Práticas
Desenvolvimento Seguro com PHP
Register Globals
Se configurada como On todas as variáveis provenientes de literais de
consulta, formulários postados, sessões armazenadas, cookies, e assim
por diante, estão disponíveis como o que parecem ser variáveis
nomeadas localmente.
Se as variáveis não forem inicializadas antes do uso, é possível para um
usuário malicioso configurar variáveis de script e comprometer uma
aplicação.
Tira do programador a noção de origem dos dados.
Tira do interpretador da linguagem a noção de origem dos dados.
Desabilitada por padrão à partir da versão 4.2.0 e na versão 6 será
eliminada.
Conceitos e Práticas
Desenvolvimento Seguro com PHP
Formulários Falsificados
Há várias formas de falsificar formulários, o mais fácil deles é
simplesmente copiar um formulário alvo e executá-lo de um lugar
diferente.
Falsificar um formulário torna possível para um atacante remover todas
as restrições do lado do cliente impostas pelo formulário de modo a
submeter toda e qualquer forma de dados para sua aplicação.
Submissões de formulários falsificados são difíceis de prevenir.
CONCLUSÃO: Nunca dependa somente da validação do lado do cliente.
Segurança de Website
Desenvolvimento Seguro com PHP
Cross-Site Scripting (XSS)
É um dos mais comuns e mais conhecidos tipos de ataque.
Explora a confiança do usuário na aplicação e é geralmente um esforço
para roubar informações do usuário, tal como cookies e outros dados
de identificação pessoal.
Todas as aplicações que mostram a entrada são um risco. Exemplo:
fóruns, blogs, etc.
Pode ser contornado com o tratamento da saída.
Segurança de Website
Desenvolvimento Seguro com PHP
Cross-Site Request Forgeries (CSRF)
É um ataque que tenta fazer com que uma vítima envie sem saber
requisições HTTP, normalmente para URLs que requerem acesso
privilegiado e usar a sessão existente da vítima para determinar o
acesso.
A requisição HTTP então força a vítima a executar uma ação particular
baseada no seu nível de privilégio, tal como fazer uma compra ou
modificar ou remover uma informação.
Sua aplicação necessita da habilidade de determinar se uma requisição
foi intencional e legítima ou forjada e maliciosa.
Pode ser contornado com o uso de um token randômico armazenado em
sessão, que seja gravado nos formulários.
Segurança de Website
Desenvolvimento Seguro com PHP
SQL Injection
Ocorre quando um usuário malicioso experimenta obter informações
sobre um banco de dados através de um formulário.
Depois de conseguir conhecimento suficiente – geralmente das
mensagens de erro do banco de dados – o atacante estará equipado
para explorar o formulário para quaisquer possíveis vulnerabilidades
através de injeção de SQL em campos do formulário.
CONCLUSÃO: Filtre todos os dados que possam fazer parte de
declarações SQL.
Segurança de Banco de Dados
Desenvolvimento Seguro com PHP
Session Fixation
É possível configurar o identificador de sessão manualmente através de
um literal de consulta, forçando o uso de uma sessão particular.
Obtido geralmente pela criação de um link para sua aplicação e a adição
do identificador que o atacante deseja dar a qualquer usuário que clicar
no link.
Enquanto o usuário acessa seu site através da sessão, ele pode
fornecer informações sensíveis ou mesmo credenciais de login. O
propósito do ataque é obter um alto nível de privilégio.
CONCLUSÃO: Cada vez que um nível de acesso de usuário muda, é
necessário regenerar o identificador de sessão. PHP faz disso uma
tarefa simples com session_regenerate_id().
Segurança de Sessão
Desenvolvimento Seguro com PHP
Session Hijacking
Este é um termo genericamente usado para descrever quaisquer meios
pelos quais um atacante obtenha um identificador de sessão válido (ou
que forneça um de sua própria autoria).
Pode ser contornado pela verificação de vários cabeçalhos da
requisição enviados pelo cliente, através de parâmetros que não se
alterem.
Segurança de Sessão
Desenvolvimento Seguro com PHP
Remote Code Injection
Ocorre quando um atacante é capaz de fazer sua aplicação executar
código PHP de seu escolha.
Pode ser contornado com filtragem de dados.
Segurança de Sistema de Arquivos
Desenvolvimento Seguro com PHP
Command Injection
O PHP provê grande poder com as funções exec(), system() e passthru(),
bem como o operador ‘ (acento agudo).
Elas não devem ser usadas levianamente, e é importante tomar grande
cuidado em garantir que atacantes não possam injetar e executar
comandos de sistema arbitrariamente.
Pode ser contornado com filtragem de dados.
Funções: escapeshellcmd() e escapeshellarg().
Segurança de Sistema de Arquivos
Desenvolvimento Seguro com PHP
Mensagens de Erro são para o Desenvolvimento
Desligue display_errors na produção.
Use log_errors e error_log.
Algumas Dicas Importantes
Desenvolvimento Seguro com PHP
Use require ao invés de include
require gera erros fatais e interrompe a
aplicação. include reporta o erro e
prossegue com a execução.
Algumas Dicas Importantes
Desenvolvimento Seguro com PHP
Criptografe os Dados
Funções: MD5, SHA1, mcrypt, etc
Algumas Dicas Importantes
Desenvolvimento Seguro com PHP
Desligue magic_quotes_gpc
Afeta a portabilidade (está ligada, está desligada?)
Performance: todos os dados sofrem escaping.
Inconveniência. Gera caracteres de escape onde
não é necessário (por exemplo, e-mail).
Será removido no PHP 6.
Algumas Dicas Importantes
Desenvolvimento Seguro com PHP
http://www.php.net/manual/pt_BR/security.php
Onde obtenho ajuda?
Desenvolvimento Seguro com PHP
Sugestão de Leitura
Desenvolvimento Seguro com PHP
Perguntas
?
www.fgsl.eti.br
Desenvolvimento Seguro com PHP
Fim
Obrigado

Mais conteúdo relacionado

Mais procurados

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
 
Construindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de BalasConstruindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de BalasRafael Jaques
 
Resenha o que é um hacker
Resenha o que é um hackerResenha o que é um hacker
Resenha o que é um hackernilsonsq
 
Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguroCharles Fortes
 
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
 
Palestra criando aplicações seguras com php (2)
Palestra  criando aplicações seguras com php (2)Palestra  criando aplicações seguras com php (2)
Palestra criando aplicações seguras com php (2)Leandro Lugaresi
 
Palestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de RedesPalestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de RedesBruno Alexandre
 
Técnicas de Invasão - INFOESTE 2015
Técnicas de Invasão - INFOESTE 2015Técnicas de Invasão - INFOESTE 2015
Técnicas de Invasão - INFOESTE 2015C H
 
Segurança no desenvolvimento web
Segurança no desenvolvimento webSegurança no desenvolvimento web
Segurança no desenvolvimento webRafael Monteiro
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesClavis Segurança da Informação
 
Desenvolvendo Código Seguro com Zend Framework
Desenvolvendo Código Seguro com Zend FrameworkDesenvolvendo Código Seguro com Zend Framework
Desenvolvendo Código Seguro com Zend FrameworkFlávio Lisboa
 

Mais procurados (19)

Aula 9 - Backdoor
Aula 9 - BackdoorAula 9 - Backdoor
Aula 9 - Backdoor
 
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
 
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
 
Introdução de teste de segurança app web
Introdução de teste de segurança app webIntrodução de teste de segurança app web
Introdução de teste de segurança app web
 
Aula de seguranca (1)
Aula de seguranca (1)Aula de seguranca (1)
Aula de seguranca (1)
 
Construindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de BalasConstruindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de Balas
 
Resenha o que é um hacker
Resenha o que é um hackerResenha o que é um hacker
Resenha o que é um hacker
 
Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguro
 
Aula 10 - Cross Site Scripting (XSS)
Aula 10 - Cross Site Scripting (XSS)Aula 10 - Cross Site Scripting (XSS)
Aula 10 - Cross Site Scripting (XSS)
 
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 “...
 
Invasão e Segurança
Invasão e SegurançaInvasão e Segurança
Invasão e Segurança
 
Palestra criando aplicações seguras com php (2)
Palestra  criando aplicações seguras com php (2)Palestra  criando aplicações seguras com php (2)
Palestra criando aplicações seguras com php (2)
 
Palestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de RedesPalestra: Pentest - Intrusão de Redes
Palestra: Pentest - Intrusão de Redes
 
teste de invasão
teste de invasãoteste de invasão
teste de invasão
 
Técnicas de Invasão - INFOESTE 2015
Técnicas de Invasão - INFOESTE 2015Técnicas de Invasão - INFOESTE 2015
Técnicas de Invasão - INFOESTE 2015
 
Segurança no desenvolvimento web
Segurança no desenvolvimento webSegurança no desenvolvimento web
Segurança no desenvolvimento web
 
Pentest
Pentest Pentest
Pentest
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
Desenvolvendo Código Seguro com Zend Framework
Desenvolvendo Código Seguro com Zend FrameworkDesenvolvendo Código Seguro com Zend Framework
Desenvolvendo Código Seguro com Zend Framework
 

Destaque

Fraud Prevention Detection and Management
Fraud Prevention Detection and ManagementFraud Prevention Detection and Management
Fraud Prevention Detection and ManagementMABSIV
 
Mini crne rupe u CERN/u
Mini crne rupe u CERN/uMini crne rupe u CERN/u
Mini crne rupe u CERN/uSEENET-MTP
 
Como elaborar um trabalho de pesquisa
Como elaborar um trabalho de pesquisaComo elaborar um trabalho de pesquisa
Como elaborar um trabalho de pesquisaBibJoseRegio
 
Go Offense! Go Defense! Portfolio Management in Toolkit 6
Go Offense! Go Defense! Portfolio Management in Toolkit 6Go Offense! Go Defense! Portfolio Management in Toolkit 6
Go Offense! Go Defense! Portfolio Management in Toolkit 6Doug Gerlach
 
Genetic diversity of common beans as impacted on By farmer variety selection ...
Genetic diversity of common beans as impacted on By farmer variety selection ...Genetic diversity of common beans as impacted on By farmer variety selection ...
Genetic diversity of common beans as impacted on By farmer variety selection ...CIAT
 
Form Pendaftaran Temu Pusaka Indonesia 2012
Form Pendaftaran Temu Pusaka Indonesia 2012Form Pendaftaran Temu Pusaka Indonesia 2012
Form Pendaftaran Temu Pusaka Indonesia 2012Elanto Wijoyono
 
Acudeami
AcudeamiAcudeami
Acudeamialeah
 
Soil Fertility Management and eco-efficiency of small holder agricultural sys...
Soil Fertility Management and eco-efficiency of small holder agricultural sys...Soil Fertility Management and eco-efficiency of small holder agricultural sys...
Soil Fertility Management and eco-efficiency of small holder agricultural sys...CIAT
 
Praktikumsreferenz_Lu Huang
Praktikumsreferenz_Lu HuangPraktikumsreferenz_Lu Huang
Praktikumsreferenz_Lu HuangLu Huang
 
Alex Hamilton's Recommendation
Alex Hamilton's RecommendationAlex Hamilton's Recommendation
Alex Hamilton's RecommendationAndrew Nguyen
 
Trends and Challenges in Microfinance
Trends and Challenges in MicrofinanceTrends and Challenges in Microfinance
Trends and Challenges in MicrofinanceMABSIV
 
Unofficial Transcript5Harrington
Unofficial Transcript5HarringtonUnofficial Transcript5Harrington
Unofficial Transcript5HarringtonSandra Harrington
 
D01L03 C Niculescu - Mathematical Research and Mathematical Education
D01L03 C Niculescu - Mathematical Research and Mathematical EducationD01L03 C Niculescu - Mathematical Research and Mathematical Education
D01L03 C Niculescu - Mathematical Research and Mathematical EducationSEENET-MTP
 
F. Stoeckel - DAAD Activities in SEE
F. Stoeckel - DAAD Activities in SEEF. Stoeckel - DAAD Activities in SEE
F. Stoeckel - DAAD Activities in SEESEENET-MTP
 
El Empresario ante la Morosidad Diciembre 2008
El Empresario ante la Morosidad Diciembre 2008El Empresario ante la Morosidad Diciembre 2008
El Empresario ante la Morosidad Diciembre 2008Andrés Romero
 
N. Bilic - Supersymmetric Dark Energy
N. Bilic - Supersymmetric Dark EnergyN. Bilic - Supersymmetric Dark Energy
N. Bilic - Supersymmetric Dark EnergySEENET-MTP
 

Destaque (20)

Fraud Prevention Detection and Management
Fraud Prevention Detection and ManagementFraud Prevention Detection and Management
Fraud Prevention Detection and Management
 
Mini crne rupe u CERN/u
Mini crne rupe u CERN/uMini crne rupe u CERN/u
Mini crne rupe u CERN/u
 
Como elaborar um trabalho de pesquisa
Como elaborar um trabalho de pesquisaComo elaborar um trabalho de pesquisa
Como elaborar um trabalho de pesquisa
 
Go Offense! Go Defense! Portfolio Management in Toolkit 6
Go Offense! Go Defense! Portfolio Management in Toolkit 6Go Offense! Go Defense! Portfolio Management in Toolkit 6
Go Offense! Go Defense! Portfolio Management in Toolkit 6
 
Genetic diversity of common beans as impacted on By farmer variety selection ...
Genetic diversity of common beans as impacted on By farmer variety selection ...Genetic diversity of common beans as impacted on By farmer variety selection ...
Genetic diversity of common beans as impacted on By farmer variety selection ...
 
Form Pendaftaran Temu Pusaka Indonesia 2012
Form Pendaftaran Temu Pusaka Indonesia 2012Form Pendaftaran Temu Pusaka Indonesia 2012
Form Pendaftaran Temu Pusaka Indonesia 2012
 
KALSEE Certificate
KALSEE CertificateKALSEE Certificate
KALSEE Certificate
 
Atlas Trainer
Atlas TrainerAtlas Trainer
Atlas Trainer
 
Acudeami
AcudeamiAcudeami
Acudeami
 
Soil Fertility Management and eco-efficiency of small holder agricultural sys...
Soil Fertility Management and eco-efficiency of small holder agricultural sys...Soil Fertility Management and eco-efficiency of small holder agricultural sys...
Soil Fertility Management and eco-efficiency of small holder agricultural sys...
 
Praktikumsreferenz_Lu Huang
Praktikumsreferenz_Lu HuangPraktikumsreferenz_Lu Huang
Praktikumsreferenz_Lu Huang
 
Alex Hamilton's Recommendation
Alex Hamilton's RecommendationAlex Hamilton's Recommendation
Alex Hamilton's Recommendation
 
DHS Diploma
DHS DiplomaDHS Diploma
DHS Diploma
 
Trends and Challenges in Microfinance
Trends and Challenges in MicrofinanceTrends and Challenges in Microfinance
Trends and Challenges in Microfinance
 
Unofficial Transcript5Harrington
Unofficial Transcript5HarringtonUnofficial Transcript5Harrington
Unofficial Transcript5Harrington
 
D01L03 C Niculescu - Mathematical Research and Mathematical Education
D01L03 C Niculescu - Mathematical Research and Mathematical EducationD01L03 C Niculescu - Mathematical Research and Mathematical Education
D01L03 C Niculescu - Mathematical Research and Mathematical Education
 
F. Stoeckel - DAAD Activities in SEE
F. Stoeckel - DAAD Activities in SEEF. Stoeckel - DAAD Activities in SEE
F. Stoeckel - DAAD Activities in SEE
 
El Empresario ante la Morosidad Diciembre 2008
El Empresario ante la Morosidad Diciembre 2008El Empresario ante la Morosidad Diciembre 2008
El Empresario ante la Morosidad Diciembre 2008
 
4
44
4
 
N. Bilic - Supersymmetric Dark Energy
N. Bilic - Supersymmetric Dark EnergyN. Bilic - Supersymmetric Dark Energy
N. Bilic - Supersymmetric Dark Energy
 

Semelhante a Desenvolvimento Seguro PHP

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
 
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
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Alcyon Ferreira de Souza Junior, MSc
 
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
 
ataque_bruteforce_com_hydra_parte_1.pdf
ataque_bruteforce_com_hydra_parte_1.pdfataque_bruteforce_com_hydra_parte_1.pdf
ataque_bruteforce_com_hydra_parte_1.pdfxererenhosdominaram
 
Explorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemExplorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemAlcyon Ferreira de Souza Junior, MSc
 
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Alcyon Ferreira de Souza Junior, MSc
 
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
 
Aula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação WebAula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação WebMatheus Fidelis
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareAlcyon Ferreira de Souza Junior, MSc
 
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...EMERSON EDUARDO RODRIGUES
 
Importância do profissional Hacker ético no mercado de trabalho
Importância do profissional Hacker ético no mercado de trabalhoImportância do profissional Hacker ético no mercado de trabalho
Importância do profissional Hacker ético no mercado de trabalhoMarcos Flávio Araújo Assunção
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxEdlaine Zamora
 
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
 

Semelhante a Desenvolvimento Seguro PHP (20)

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
 
Segurança na web
Segurança na webSegurança na web
Segurança na web
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
 
Java security
Java securityJava security
Java security
 
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 de código
Segurança de códigoSegurança de código
Segurança de código
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem
 
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
 
ataque_bruteforce_com_hydra_parte_1.pdf
ataque_bruteforce_com_hydra_parte_1.pdfataque_bruteforce_com_hydra_parte_1.pdf
ataque_bruteforce_com_hydra_parte_1.pdf
 
Explorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemExplorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometem
 
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
 
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ç...
 
Aula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação WebAula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação Web
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de Software
 
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
 
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
Vulnerabilidades Comuns em Aplicações Web - RoadSec 2023 EMERSON EDUARDO RODR...
 
Importância do profissional Hacker ético no mercado de trabalho
Importância do profissional Hacker ético no mercado de trabalhoImportância do profissional Hacker ético no mercado de trabalho
Importância do profissional Hacker ético no mercado de trabalho
 
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
 
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?
 
Testes de segurança em aplicações web
Testes de segurança em aplicações webTestes de segurança em aplicações web
Testes de segurança em aplicações web
 

Mais de Flávio Lisboa

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPFlávio Lisboa
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaFlávio Lisboa
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasFlávio Lisboa
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoFlávio Lisboa
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework LaminasFlávio Lisboa
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?Flávio Lisboa
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Flávio Lisboa
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoFlávio Lisboa
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPFlávio Lisboa
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamFlávio Lisboa
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosFlávio Lisboa
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosFlávio Lisboa
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosFlávio Lisboa
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasFlávio Lisboa
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadoresFlávio Lisboa
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)Flávio Lisboa
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Flávio Lisboa
 

Mais de Flávio Lisboa (20)

Criando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHPCriando testes integrados de APIs com PHP
Criando testes integrados de APIs com PHP
 
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaCooperativas de Software Livre: Uma comparação entre Brasil e Argentina
Cooperativas de Software Livre: Uma comparação entre Brasil e Argentina
 
Aprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com LaminasAprenda a afiar suas garras com Laminas
Aprenda a afiar suas garras com Laminas
 
Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com método
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework Laminas
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundo
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dados
 
Amanhecer esmeralda
Amanhecer esmeraldaAmanhecer esmeralda
Amanhecer esmeralda
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviços
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
 
O que é programação de computadores
O que é programação de computadoresO que é programação de computadores
O que é programação de computadores
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)
 

Desenvolvimento Seguro PHP

  • 1. Desenvolvimento Seguro com PHP Palestrante: Flávio Gomes da Silva Lisboa www.fgsl.eti.br Desenvolvimento Seguro com PHP
  • 2. “Com um grande poder, vem uma grande responsabilidade”.
  • 3. Desenvolvimento Seguro com PHP Poder e Responsabilidade “Ben Parker avisou uma vez seu jovem sobrinho Peter Peter, cujo alter- ego super-herói é o Homem-Aranha, que “com um grande poder, vem uma grande responsabilidade”. Assim é com a segurança em aplicações PHP. O PHP fornece um rico conjunto de ferramentas com imenso poder – alguns tem argumentado que talvez seja muito poder – e este poder, quando usado com cuidadosa atenção aos detalhes, permite a criação de aplicações complexas e robustas. Por outro lado, sem essa atenção para os detalhes, usuários maliciosos podem usar o poder do PHP para seus próprios interesses, atacando aplicações de várias formas.” Introdução Zend PHP 5 Certification Study Guide
  • 4. Desenvolvimento Seguro com PHP Falta de segurança: mito do PHP A maior fraqueza na maioria dos programas PHP não é inerente a linguagem em si, mas meramente um problema de código escrito desconsiderando a segurança. Por essa razão, você sempre deve investir um pouco de tempo considerando as implicações de um certo pedaço de código, para ter certeza do dano possível se uma variável não esperada for submetida ao mesmo. Introdução Manual do PHP: www.php.net
  • 5. Desenvolvimento Seguro com PHP Conceitos e Práticas Toda Entrada está Doente Lista Branca versus Lista Negra Filtro de Entrada Tratamento de Saída Register Globals Segurança de Website Formulários Falsificados Cross-Site Scripting Cross-Site Request Forgeries Segurança de Banco de Dados Segurança de Sessão Segurança do Sistema de Arquivos Remote Code Injection Command Injection Algumas Dicas Importantes Agenda
  • 6. Desenvolvimento Seguro com PHP Toda Entrada está Doente ►Se o dado se origina de uma fonte externa, ele não pode ser confiável. ►Não temos certeza de os dados contém caracteres que podem ser executados no contexto errado. ►Dados de todas as matrizes superglobais, exceto $_SESSION devem ser considerados doentes. CONCLUSÃO: Todo dado deve ser filtrado. Conceitos e Práticas Zend PHP 5 Certification Study Guide
  • 7. Desenvolvimento Seguro com PHP Lista Branca versus Lista Negra ►Lista Negra → Menos restritiva. → Há um conjunto específico de palavras que são consideradas inapropriadas. → Qualquer palavra que não conste da lista é permitida. → Listas negras devem ser modificadas continuamente, e expandidas quando novos vetores de ataque tornam-se evidentes. ►Lista Branca → Mais restritiva. → Identifica somente os dados que são aceitáveis. → Mantém controle sobre os parâmetros que mudam e não os deixa aos caprichos de pretensos atacantes. CONCLUSÃO: Listas brancas oferecem mais proteção contra ataque do que listas negras. Conceitos e Práticas
  • 8. Desenvolvimento Seguro com PHP Filtro de Entrada Uma vez que toda entrada é doente e não pode ser confiável, é necessário filtrar sua entrada de modo a garantir que a entrada recebida seja a esperada. Para fazer isto, use uma abordagem de lista branca. Filtrar com uma abordagem de lista branca coloca o controle firmemente em suas mãos e assegura que sua aplicação não receberá dados maliciosos. Você deve forçar o usuário a fornecer dados corretos e então tentar limpar e sanitizá-los por conta própria. Funções: addslashes(), ctype_*(), html_entity_decode(), htmlentities(), strip_tags(), stripslashes(), trim(), entre outras. Conceitos e Práticas
  • 9. Desenvolvimento Seguro com PHP Tratamento de Saída Assim como a filtragem de entrada protege sua aplicação de dados maliciosos e nocivos, o tratamento de saída protege o cliente e o usuário de comandos potencialmente perigosos. A saída deve ser tratada porque os clientes – navegadores Web, servidores de banco de dados, e assim por diante – freqüentemente executam uma ação quando encontram caracteres especiais. Funções: addslashes(), ctype_*(), html_entity_decode(), htmlentities(), strip_tags(), stripslashes(), trim(), entre outras. Conceitos e Práticas
  • 10. Desenvolvimento Seguro com PHP Register Globals Se configurada como On todas as variáveis provenientes de literais de consulta, formulários postados, sessões armazenadas, cookies, e assim por diante, estão disponíveis como o que parecem ser variáveis nomeadas localmente. Se as variáveis não forem inicializadas antes do uso, é possível para um usuário malicioso configurar variáveis de script e comprometer uma aplicação. Tira do programador a noção de origem dos dados. Tira do interpretador da linguagem a noção de origem dos dados. Desabilitada por padrão à partir da versão 4.2.0 e na versão 6 será eliminada. Conceitos e Práticas
  • 11. Desenvolvimento Seguro com PHP Formulários Falsificados Há várias formas de falsificar formulários, o mais fácil deles é simplesmente copiar um formulário alvo e executá-lo de um lugar diferente. Falsificar um formulário torna possível para um atacante remover todas as restrições do lado do cliente impostas pelo formulário de modo a submeter toda e qualquer forma de dados para sua aplicação. Submissões de formulários falsificados são difíceis de prevenir. CONCLUSÃO: Nunca dependa somente da validação do lado do cliente. Segurança de Website
  • 12. Desenvolvimento Seguro com PHP Cross-Site Scripting (XSS) É um dos mais comuns e mais conhecidos tipos de ataque. Explora a confiança do usuário na aplicação e é geralmente um esforço para roubar informações do usuário, tal como cookies e outros dados de identificação pessoal. Todas as aplicações que mostram a entrada são um risco. Exemplo: fóruns, blogs, etc. Pode ser contornado com o tratamento da saída. Segurança de Website
  • 13. Desenvolvimento Seguro com PHP Cross-Site Request Forgeries (CSRF) É um ataque que tenta fazer com que uma vítima envie sem saber requisições HTTP, normalmente para URLs que requerem acesso privilegiado e usar a sessão existente da vítima para determinar o acesso. A requisição HTTP então força a vítima a executar uma ação particular baseada no seu nível de privilégio, tal como fazer uma compra ou modificar ou remover uma informação. Sua aplicação necessita da habilidade de determinar se uma requisição foi intencional e legítima ou forjada e maliciosa. Pode ser contornado com o uso de um token randômico armazenado em sessão, que seja gravado nos formulários. Segurança de Website
  • 14. Desenvolvimento Seguro com PHP SQL Injection Ocorre quando um usuário malicioso experimenta obter informações sobre um banco de dados através de um formulário. Depois de conseguir conhecimento suficiente – geralmente das mensagens de erro do banco de dados – o atacante estará equipado para explorar o formulário para quaisquer possíveis vulnerabilidades através de injeção de SQL em campos do formulário. CONCLUSÃO: Filtre todos os dados que possam fazer parte de declarações SQL. Segurança de Banco de Dados
  • 15. Desenvolvimento Seguro com PHP Session Fixation É possível configurar o identificador de sessão manualmente através de um literal de consulta, forçando o uso de uma sessão particular. Obtido geralmente pela criação de um link para sua aplicação e a adição do identificador que o atacante deseja dar a qualquer usuário que clicar no link. Enquanto o usuário acessa seu site através da sessão, ele pode fornecer informações sensíveis ou mesmo credenciais de login. O propósito do ataque é obter um alto nível de privilégio. CONCLUSÃO: Cada vez que um nível de acesso de usuário muda, é necessário regenerar o identificador de sessão. PHP faz disso uma tarefa simples com session_regenerate_id(). Segurança de Sessão
  • 16. Desenvolvimento Seguro com PHP Session Hijacking Este é um termo genericamente usado para descrever quaisquer meios pelos quais um atacante obtenha um identificador de sessão válido (ou que forneça um de sua própria autoria). Pode ser contornado pela verificação de vários cabeçalhos da requisição enviados pelo cliente, através de parâmetros que não se alterem. Segurança de Sessão
  • 17. Desenvolvimento Seguro com PHP Remote Code Injection Ocorre quando um atacante é capaz de fazer sua aplicação executar código PHP de seu escolha. Pode ser contornado com filtragem de dados. Segurança de Sistema de Arquivos
  • 18. Desenvolvimento Seguro com PHP Command Injection O PHP provê grande poder com as funções exec(), system() e passthru(), bem como o operador ‘ (acento agudo). Elas não devem ser usadas levianamente, e é importante tomar grande cuidado em garantir que atacantes não possam injetar e executar comandos de sistema arbitrariamente. Pode ser contornado com filtragem de dados. Funções: escapeshellcmd() e escapeshellarg(). Segurança de Sistema de Arquivos
  • 19. Desenvolvimento Seguro com PHP Mensagens de Erro são para o Desenvolvimento Desligue display_errors na produção. Use log_errors e error_log. Algumas Dicas Importantes
  • 20. Desenvolvimento Seguro com PHP Use require ao invés de include require gera erros fatais e interrompe a aplicação. include reporta o erro e prossegue com a execução. Algumas Dicas Importantes
  • 21. Desenvolvimento Seguro com PHP Criptografe os Dados Funções: MD5, SHA1, mcrypt, etc Algumas Dicas Importantes
  • 22. Desenvolvimento Seguro com PHP Desligue magic_quotes_gpc Afeta a portabilidade (está ligada, está desligada?) Performance: todos os dados sofrem escaping. Inconveniência. Gera caracteres de escape onde não é necessário (por exemplo, e-mail). Será removido no PHP 6. Algumas Dicas Importantes
  • 23. Desenvolvimento Seguro com PHP http://www.php.net/manual/pt_BR/security.php Onde obtenho ajuda?
  • 24. Desenvolvimento Seguro com PHP Sugestão de Leitura
  • 25. Desenvolvimento Seguro com PHP Perguntas ? www.fgsl.eti.br
  • 26. Desenvolvimento Seguro com PHP Fim Obrigado