Your SlideShare is downloading. ×
Segurança em PHP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Segurança em PHP

2,466
views

Published on

Segurança de suas aplicações em PHP

Segurança de suas aplicações em PHP

Published in: Technology

2 Comments
6 Likes
Statistics
Notes
  • Ótimo Augusto, estou sempre contigo na tempo real e mais uma vez te parabenizo pelo seu trabalho com a comunidade.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Ótima apresentação!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
2,466
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
145
Comments
2
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

    • 1. SEGURANÇA EM PHP Augusto Pascutti
    • 2. Augusto Pascutti 4 anos de experiência Zend Certified Engineer Co-Fundador PHPSP Host PHPSPCast Habari,CakePHP
    • 3. Segurança
    • 4. Princípios Se mantenha a eles e você terá: Um usuário feliz Um patrão feliz Finais de Semana e quem sabe férias
    • 5. Segurança é ...
    • 6. como um ogro ...
    • 7. Que são como cebolas !
    • 8. Segurança em camadas Segurança nunca é demais Segurança em profundidade Aplique camadas de segurança em tudo que puder Não conte com a bondade no mundo
    • 9. Informação Confidencial
    • 10. Informação Confidencial Classifique tudo que for sensível Impeça o acesso a essa informação Lei do menor privilégio Se o usuário não precisa ver, não deixe.
    • 11. Segurança x Usabilidade Shozu.com
    • 12. Segurança x Usabilidade reCaptcha
    • 13. Segurança x Usabilidade Procure implementar segurança transparente ao usuário Se não for possível: Pense no Risco e na Usabilidade Tenha em mente que dependemos de usuários felizes NUNCA esqueça da usabilidade
    • 14. Segurança x Usabilidade Qual o animal da figura ?
    • 15. Vigie sempre Nunca confie no usuário Nunca confie em outras aplicações Nunca confie. Mantenha registro da onde, de quem e quando a informação for gerada
    • 16. Filtre o INPUT Identifique o input Filtre o input
    • 17. Identificando Input O input pode vir de diversos lugares Formulário Outra aplicação Sistema
    • 18. Filtrando
    • 19. Filtrando
    • 20. Filtrando
    • 21. Filtrando
    • 22. Filtrando
    • 23. Filtrando
    • 24. Filtrando
    • 25. Filtrando
    • 26. Filtrando
    • 27. Escape o Output O que é output ? echo, print, sprintf <?= Na grande maioria, o destino é o navegador Escapar HTML
    • 28. Escape o Output
    • 29. Escape o Output
    • 30. Escape o Output
    • 31. htmlentities() Converte TODO caractere para entidade HTML correspondente Segundo e terceiro parâmetro são opcionais Segundo: como as aspas (duplas e simples) seão tratadas Padrão: ENT_COMPAT ENT_QUOTES: Converte ambas para entidade HTML Terceiro: encoding do output Padrão: ISO-8859-1
    • 32. Escape o Output
    • 33. Brindes Extensão dos arquivos sempre “.php” Dentro do DocRoot, só o necessário Mantenha seu código simples e encapsulado Favoreça Orientação a Objetos
    • 34. TOP 10 OWASP Lista de riscos de Segurança (rc1) de 2010 Injection XSS Quebra de Autenticação e Problemas de Sessões Referências não seguras a Objetos CSRF Erros de Configuração Falhas ao restringir acesso a URLs Redirecionamentos e Encaminhamentos não seguros Métodos de criptografia não seguros Segurança insuficiente no transporte de dados
    • 35. Sql Injection O que é ? Envio de comandos não tratados pela aplicação para o interpretador Impacto Toda a base de dados pode ser lida ou modificada Pode garantir acesso ao banco de dados ou até ao Sistema Operacional
    • 36. Cross Site Scripting (XSS) O que é ? Dados do atacante são enviados ao navegador do cliente Impacto Roubo de sessão, de dados sensíveis, phishing
    • 37. Cross Site Request Forgery (CSRF) O que é ? O navegador é “enganado” e envia um comando a um site vulnerável Impacto Iniciar transações (tranferência, logout, cancelamento) Acesso sensível a dados Mudança de dados da conta
    • 38. CSRF
    • 39. CSRF
    • 40. CSRF <img src="http://loja/comprar.php?quant=100" />
    • 41. CSRF
    • 42. CSRF
    • 43. CSRF
    • 44. Problemas de Configuração O que é ? Configuração de rede e do servidor de aplicação Impacto Acesso ao Sistema Operacional através de um problema conhecido Acesso a dados da aplicação
    • 45. allow_url_fopen Permite acesso a recursos remotos Valor padrão: On Aliado ao ‘allow_url_include’ (> 5.2) é muito perigoso
    • 46. allow_url_fopen $conteudo = file_get_contents(“http://www.google.com”)
    • 47. allow_url_fopen include “http://www.bad-bad-site.com”
    • 48. register_globals Exporta índices de super globais para variáveis comuns Impede que se identifique a origem do dado Padrão < 4.2: On >4.2: Off
    • 49. register_globals
    • 50. register_globals
    • 51. register_globals
    • 52. magic_quotes_gpc Escapa todos os dados em $_GET, $_POST e $_COOKIE Usa addslashes() e não escape nativo do seu banco Complica seu algoritmo de filtro Padrão: On Obsoleto no PHP 5.3 Removido do PHP 6
    • 53. display_errors Exibe no output erros do PHP DEVE ser usado no desenvolvimento DEVE ser desligado na produção Padrão: On
    • 54. error_reporting Controla os níveis de erros que devem ser exibidos Ajuda na identificação de erros e boas práticas Recomendado: -1
    • 55. safe_mode Restringe algumas funcões tidas como prejudiciais Verifica se o dono do arquivo a ser executado é o mesmo do script em execução Melhora a segurança Não é suficiente Padrão: Off
    • 56. Acesso a URLs Restritas O que é? Permitir que um usuário possa forjar uma autorização a uma URL sensível Impacto Permitir ações privilegiadas a qualquer pessoa
    • 57. Redirecionamentos Inválidos O que é? Enviar o usuário para uma URL não valida Impacto Phishing
    • 58. Criptografia Não Segura O que é? Falha na identificação de todos os dados que devem ser criptografados Uso de criptografia não segura (md5, sha1) Impacto Acesso a dados sensíveis Solução mcrypt
    • 59. Transporte de dados O que é? Falta de segurança na troca de informações sensíveis Impacto Acesso a dados sensíveis Solução SSL ou TLS para transporte dos dados
    • 60. Perguntas ? Augusto Pascutti augusto@phpsp.org.br @augustohp
    • 61. Referências Essential PHP Security - Chris Chiflett - O’Reilly http://www.owasp.org/ http://phpsp.org.br/category/phpsp/phpspcast/ Segurança em PHP - Márcio Pessoa - Novatec