Your SlideShare is downloading. ×
0
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!
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!
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!
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!
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!
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!
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!
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

5,811

Published on

Palestra apresentada por mim no PHPSC 2012 em São José, na Univali. Palestra de nível básico mas que tem algumas dicas bastante legais!

Palestra apresentada por mim no PHPSC 2012 em São José, na Univali. Palestra de nível básico mas que tem algumas dicas bastante legais!

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
5,811
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
118
Comments
1
Likes
2
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
  • Antes de iniciar… fica a pergunta: passa para o próximo slide
  • Próximo: Por onde começar?
  • No próximo slide tem o exemplo sobre carregar arquivos via get
  • 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
  • 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
  • No próximo slide tem o exemplo sobre carregar arquivos via get
  • No próximo slide tem o exemplo sobre carregar arquivos via get
  • Transcript

    • 1. Segurança em PHPBlinde seu código de você mesmo!
    • 2. @gustavodasnevesfacebook.com/gustavo.nevesgngustavo.masterstudioweb.comwww.gustavoneves.com
    • 3. Sua aplicação é segura?
    • 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!
    • 5. Por onde começar?
    • 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 efontes 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 ETODA SAÍDA DEVE SER ”ESCAPADA”
    • 12. Filtrando as entradasfilter_input()
    • 13. Problemas comunsem aplicações
    • 14. Cuidados com sua URL Práticas de SEO lhe ajudarão no combate a SQL Injection!
    • 15. http:/meusite.com.br/?pagina=produtos.php&id=12 ouhttp://meusite.com.br/produtos/miniatura-sheldon-cooperURLS 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 aoinvés de fazer a requisição para seus arquivos .PHP
    • 16. SQL InjectionO lado negro da força
    • 17. 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
    • 18.  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().
    • 19. Confiar no usuárioTrate os dados e reze para que ele não seja “malandro” demais 
    • 20. 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!
    • 21. CriptografiaEmbaralhe, embaralhe e embaralhe
    • 22. Aplicando criptografia• Extensões de criptografia php (algumas): • Hash • Mcrypt • OpenSSLSHA-1 é praticamente idêntico ao md5, só que tem 160 bits, oque 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
    • 23. $_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
    • 24.  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
    • 25. Para finalizar:Nenhuma aplicação é 100% segura! 
    • 26. OBRIGADO! Ficou com dúvidas?Entre em contato pelo twitter @gustavodasneves

    ×