SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Laerte Guedes
   As linguagens de programação por si só já
    possuem algumas brechas de segurança que
    podem vir a ser exploradas por hackers mal
    intencionados. Porém, estima-se que cerca
    de 70% das falhas exploradas não são da
    linguagem, e sim, da codificação indevida do
    sistema.
   Mensagens de Erro: É necessário muito
    cuidado com a exposição de informações que
    mensagens de erro provocam. Uma simples
    falha de conexão com banco de dados pode
    exibir o nome do banco e o usuário do
    mesmo, o que é perigoso se alguém mal
    intencionado ver.
   Criptografia
   Criptografia: Como sabemos, informações
    trafegam e existe a possibilidade de
    interceptação dessas informações por um
    cracker. Toda informação sigilosa deve ser
    protegida por um algoritmo de criptografia. É
    aconselhável usar um bom algoritmo de
    criptografia, ou usar um próprio.
   Validação de Dados: Tendo seu aplicativo na
    web você nunca terá 100% de controle sobre
    tudo que seus visitantes vão preencher em
    seus formulários, que diga-se de passagem, é
    a ferramenta mais importante de qualquer
    aplicação. Logo, filtre todas as informações
    afim de evitar ataques, tais como: XSS, SQL
    Injection, Mail Injection, HTML Injection e
    outros.
   Configurações de Servidor: Fique atento
    sempre as configurações dos servidores que
    pretende trabalhar. Existem diretivas que
    podem ser exploradas facilmente se não
    houver a devida preocupação por parte do
    programador na hora da codificação.
   Atualize-se: Procure sempre procurar sobre
    novos tipos de invasão e softwares mal-
    intencionados e modo de como proteger o
    seu sistema web deles. Não esqueça, todo dia
    surgem novos vírus e outras ameaças.
   SQL Injection: É um tipo de ameaça de
    segurança que visa a inserção de instruções
    SQL através da manipulação de dados de
    uma aplicação.
   Consideremos o seguinte comando SQL:
   SELECT id, nome, sobrenome FROM autores;
   Restringiremos nossa busca amarrando os
    valores inseridos pelo usuário numa cláusula
    WHERE:
   SELECT id, nome, sobrenome FROM autores
    WHERE nome = 'josé' AND sobrenome = 'silva';
   José e Silva são strings cujo conteúdo será
    inserido como entrada pelo usuário.
   Considerando isso, vamos supor que o usuário
    coloque acidentalmente uma aspa simples no
    meio da string inserida:
   SELECT id, nome, sobrenome FROM autores
    WHERE nome = 'jo'sé' AND sobrenome = 'silva';
   O inserção da aspa faz com que o que vier depois
    dela seja considerado como uma instrução SQL
    autêntica. Acima temos erro de sintaxe, mas
    poderíamos fazer assim:
   SELECT id, nome, sobrenome FROM autores
    WHERE nome = 'jo'; DROP TABLE autores ;
   Desse modo, nesse último comando, ao
    inserirmos uma string acrescida de aspas
    simples e do comando “DROPTABLE
    autores” no injetamos uma instrução SQL de
    forma indevida, e removemos a tabela
    autores de nosso banco de dados.
   Resumindo, a SQL Injection só significa uma
    coisa para nosso sistema:
   Usar a Função Addslashes();
   Fazer validações na entrada;
   Usar prepared statements;
Obrigado!

Mais conteúdo relacionado

Mais procurados

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
 
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
 
Xss injection indo alem do alert.v 0.4
Xss injection indo alem do alert.v 0.4Xss injection indo alem do alert.v 0.4
Xss injection indo alem do alert.v 0.4William Costa
 
Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Gustavo Neves
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
Segurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSegurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSamyr Abdo
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software SeguroAugusto Lüdtke
 
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
 

Mais procurados (10)

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
 
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
 
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
 
Xss injection indo alem do alert.v 0.4
Xss injection indo alem do alert.v 0.4Xss injection indo alem do alert.v 0.4
Xss injection indo alem do alert.v 0.4
 
Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!Segurança em PHP - Blinde seu código de você mesmo!
Segurança em PHP - Blinde seu código de você mesmo!
 
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
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
Segurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSegurança PHP - por Samyr Abdo
Segurança PHP - por Samyr Abdo
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software Seguro
 
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
 

Semelhante a Segurança em 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
 
Como Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasComo Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasPaulo Pires
 
Top 5 vulnerabilidades_em_aplicacoes_web
Top 5 vulnerabilidades_em_aplicacoes_webTop 5 vulnerabilidades_em_aplicacoes_web
Top 5 vulnerabilidades_em_aplicacoes_webLuis Asensio
 
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web_e_seuTop 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web_e_seuLuis Asensio
 
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
 
Engenharia de Software II - Teste de segurança de software
Engenharia de Software  II - Teste de segurança de softwareEngenharia de Software  II - Teste de segurança de software
Engenharia de Software II - Teste de segurança de softwareJuliano Padilha
 
Seven_Palestra_Banco_Dados_Servidores
Seven_Palestra_Banco_Dados_ServidoresSeven_Palestra_Banco_Dados_Servidores
Seven_Palestra_Banco_Dados_ServidoresCleber Tavares Jr.
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos WebSergio Henrique
 
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
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de SegurançaAlan Carlos
 

Semelhante a Segurança em 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
 
Como Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasComo Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js Seguras
 
Top 5 vulnerabilidades_em_aplicacoes_web
Top 5 vulnerabilidades_em_aplicacoes_webTop 5 vulnerabilidades_em_aplicacoes_web
Top 5 vulnerabilidades_em_aplicacoes_web
 
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web_e_seuTop 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
 
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
 
Invasão e Segurança
Invasão e SegurançaInvasão e Segurança
Invasão e Segurança
 
Engenharia de Software II - Teste de segurança de software
Engenharia de Software  II - Teste de segurança de softwareEngenharia de Software  II - Teste de segurança de software
Engenharia de Software II - Teste de segurança de software
 
Seven_Palestra_Banco_Dados_Servidores
Seven_Palestra_Banco_Dados_ServidoresSeven_Palestra_Banco_Dados_Servidores
Seven_Palestra_Banco_Dados_Servidores
 
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
 
Xss
XssXss
Xss
 
Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)
 
Defensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon JuniorDefensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon Junior
 
Aula 6 - Ataques de Negação de Serviço (DoS e D-DoS)
Aula 6 - Ataques de Negação de Serviço (DoS e D-DoS)Aula 6 - Ataques de Negação de Serviço (DoS e D-DoS)
Aula 6 - Ataques de Negação de Serviço (DoS e D-DoS)
 
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
 
Aula 10 - Cross Site Scripting (XSS)
Aula 10 - Cross Site Scripting (XSS)Aula 10 - Cross Site Scripting (XSS)
Aula 10 - Cross Site Scripting (XSS)
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
 
Segurança de código
Segurança de códigoSegurança de código
Segurança de código
 
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
 
Exploits
ExploitsExploits
Exploits
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de Segurança
 

Mais de COTIC-PROEG (UFPA) (20)

LT - Redis
LT - RedisLT - Redis
LT - Redis
 
LT Ansible
LT AnsibleLT Ansible
LT Ansible
 
Testes automatizados com Cypress
Testes automatizados com CypressTestes automatizados com Cypress
Testes automatizados com Cypress
 
Loop back
Loop backLoop back
Loop back
 
METEOR
METEORMETEOR
METEOR
 
Desenvolvimento de software tradicional vs ágil
Desenvolvimento de software tradicional vs ágilDesenvolvimento de software tradicional vs ágil
Desenvolvimento de software tradicional vs ágil
 
Canva
CanvaCanva
Canva
 
Git v2
Git v2Git v2
Git v2
 
Atitudes que levam ao Fracasso profissional
Atitudes que levam ao Fracasso profissionalAtitudes que levam ao Fracasso profissional
Atitudes que levam ao Fracasso profissional
 
Os 5 Sensos da Qualidade
Os 5 Sensos da QualidadeOs 5 Sensos da Qualidade
Os 5 Sensos da Qualidade
 
WATSON - O Fascinante Computador da IBM
WATSON - O Fascinante Computador da IBMWATSON - O Fascinante Computador da IBM
WATSON - O Fascinante Computador da IBM
 
Produtividade sem enrrolação
Produtividade sem enrrolaçãoProdutividade sem enrrolação
Produtividade sem enrrolação
 
LAB JavaScript
LAB JavaScriptLAB JavaScript
LAB JavaScript
 
Principios e Valores Ágeis
Principios e Valores ÁgeisPrincipios e Valores Ágeis
Principios e Valores Ágeis
 
Big data
Big dataBig data
Big data
 
Metricas para Times Ágeis
Metricas para Times ÁgeisMetricas para Times Ágeis
Metricas para Times Ágeis
 
Aplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPA
Aplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPAAplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPA
Aplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPA
 
Técnicas para Programação em Par
Técnicas para Programação em ParTécnicas para Programação em Par
Técnicas para Programação em Par
 
Feedback Canvas
Feedback CanvasFeedback Canvas
Feedback Canvas
 
5 Doenças do Gerenciamento de Projetos
5 Doenças do Gerenciamento de Projetos5 Doenças do Gerenciamento de Projetos
5 Doenças do Gerenciamento de Projetos
 

Segurança em php

  • 2.
  • 3. As linguagens de programação por si só já possuem algumas brechas de segurança que podem vir a ser exploradas por hackers mal intencionados. Porém, estima-se que cerca de 70% das falhas exploradas não são da linguagem, e sim, da codificação indevida do sistema.
  • 4. Mensagens de Erro: É necessário muito cuidado com a exposição de informações que mensagens de erro provocam. Uma simples falha de conexão com banco de dados pode exibir o nome do banco e o usuário do mesmo, o que é perigoso se alguém mal intencionado ver.
  • 5. Criptografia
  • 6. Criptografia: Como sabemos, informações trafegam e existe a possibilidade de interceptação dessas informações por um cracker. Toda informação sigilosa deve ser protegida por um algoritmo de criptografia. É aconselhável usar um bom algoritmo de criptografia, ou usar um próprio.
  • 7. Validação de Dados: Tendo seu aplicativo na web você nunca terá 100% de controle sobre tudo que seus visitantes vão preencher em seus formulários, que diga-se de passagem, é a ferramenta mais importante de qualquer aplicação. Logo, filtre todas as informações afim de evitar ataques, tais como: XSS, SQL Injection, Mail Injection, HTML Injection e outros.
  • 8. Configurações de Servidor: Fique atento sempre as configurações dos servidores que pretende trabalhar. Existem diretivas que podem ser exploradas facilmente se não houver a devida preocupação por parte do programador na hora da codificação.
  • 9. Atualize-se: Procure sempre procurar sobre novos tipos de invasão e softwares mal- intencionados e modo de como proteger o seu sistema web deles. Não esqueça, todo dia surgem novos vírus e outras ameaças.
  • 10. SQL Injection: É um tipo de ameaça de segurança que visa a inserção de instruções SQL através da manipulação de dados de uma aplicação.
  • 11. Consideremos o seguinte comando SQL:  SELECT id, nome, sobrenome FROM autores;  Restringiremos nossa busca amarrando os valores inseridos pelo usuário numa cláusula WHERE:  SELECT id, nome, sobrenome FROM autores WHERE nome = 'josé' AND sobrenome = 'silva';  José e Silva são strings cujo conteúdo será inserido como entrada pelo usuário.
  • 12. Considerando isso, vamos supor que o usuário coloque acidentalmente uma aspa simples no meio da string inserida:  SELECT id, nome, sobrenome FROM autores WHERE nome = 'jo'sé' AND sobrenome = 'silva';  O inserção da aspa faz com que o que vier depois dela seja considerado como uma instrução SQL autêntica. Acima temos erro de sintaxe, mas poderíamos fazer assim:  SELECT id, nome, sobrenome FROM autores WHERE nome = 'jo'; DROP TABLE autores ;
  • 13. Desse modo, nesse último comando, ao inserirmos uma string acrescida de aspas simples e do comando “DROPTABLE autores” no injetamos uma instrução SQL de forma indevida, e removemos a tabela autores de nosso banco de dados.
  • 14. Resumindo, a SQL Injection só significa uma coisa para nosso sistema:
  • 15. Usar a Função Addslashes();  Fazer validações na entrada;  Usar prepared statements;