Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

773 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
773
On SlideShare
0
From Embeds
0
Number of Embeds
160
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Bezpečnost webových aplikací Web Inkognito VŠE 05/2013

  1. 1. Michal Špaček, @iz228 VŠE, květen 2013 www.michalspacek.cz @spazef0rze Slajdy jsou bez mých poznámek, nedávají tedy moc smysl pro toho, kdo na semináři nebyl.
  2. 2. Útoky na web SQL Injection Cross-Site Scripting Full Path Disclosure … a stovky dalších Michal Špaček @spazef0rze www.michalspacek.cz
  3. 3. Full Path Disclosure (FPD) Vyzrazení plné cesty ke skriptu http://devblog.cz/2012/04/fpd-aneb-full-path-disclosure/ Michal Špaček @spazef0rze www.michalspacek.cz
  4. 4. Michal Špaček @spazef0rze www.michalspacek.cz
  5. 5. Michal Špaček @spazef0rze www.michalspacek.cz
  6. 6. Michal Špaček @spazef0rze www.michalspacek.cz
  7. 7. Řešení? display_errors = Off Michal Špaček @spazef0rze www.michalspacek.cz
  8. 8. log_errors = On Michal Špaček @spazef0rze www.michalspacek.cz
  9. 9. Cross-Site Scripting (XSS) Útočník vloží na naši stránku vlastní HTML nebo JS kód Michal Špaček @spazef0rze www.michalspacek.cz
  10. 10. Michal Špaček @spazef0rze www.michalspacek.cz
  11. 11. Michal Špaček @spazef0rze www.michalspacek.cz
  12. 12. Michal Špaček @spazef0rze www.michalspacek.cz
  13. 13. HTML Injection (Hi) hledej?search=a“><img src=“… value=“a“><img src=“…“> Michal Špaček @spazef0rze www.michalspacek.cz
  14. 14. Řešení? htmlspecialchars($string) Michal Špaček @spazef0rze www.michalspacek.cz
  15. 15. htmlspecialchars($string, ENT_QUOTES) Michal Špaček @spazef0rze www.michalspacek.cz
  16. 16. Nepoužívat strip_tags() proti XSS Michal Špaček @spazef0rze www.michalspacek.cz
  17. 17. SQL Injection Útočník modifikuje SQL dotaz Michal Špaček @spazef0rze www.michalspacek.cz
  18. 18. Michal Špaček @spazef0rze www.michalspacek.cz
  19. 19. Michal Špaček @spazef0rze www.michalspacek.cz
  20. 20. "… WHERE znacka = '{$_GET['znacka']}'" Michal Špaček @spazef0rze www.michalspacek.cz
  21. 21. Michal Špaček @spazef0rze www.michalspacek.cz
  22. 22. '… WHERE id = ' . $_GET['id'] Michal Špaček @spazef0rze www.michalspacek.cz
  23. 23. Michal Špaček @spazef0rze www.michalspacek.cz
  24. 24. ' OR 1=1; -Michal Špaček @spazef0rze www.michalspacek.cz
  25. 25. SELECT jmeno, adresa FROM vozidla WHERE rz = '$prectena'; Michal Špaček @spazef0rze www.michalspacek.cz
  26. 26. 1AM 1337 SELECT jmeno, adresa FROM vozidla WHERE rz = '1AM 1337'; Michal Špaček @spazef0rze www.michalspacek.cz
  27. 27. ' OR 1=1; -SELECT jmeno, adresa FROM vozidla WHERE rz = '' OR 1=1; --'; Michal Špaček @spazef0rze www.michalspacek.cz
  28. 28. Řešení? Prepared statements (PDO) Michal Špaček @spazef0rze www.michalspacek.cz
  29. 29. SELECT jmeno, adresa FROM vozidla WHERE rz = ?; ' OR 1=1; -Michal Špaček @spazef0rze www.michalspacek.cz
  30. 30. Michal Špaček @spazef0rze www.michalspacek.cz
  31. 31. mysql_set_charset() mysql_real_escape_string() Michal Špaček @spazef0rze www.michalspacek.cz
  32. 32. Nepoužívat addslashes() proti SQLIA Michal Špaček @spazef0rze www.michalspacek.cz
  33. 33. 2012 … Michal Špaček @spazef0rze www.michalspacek.cz
  34. 34. 2012 … 56 Michal Špaček @spazef0rze www.michalspacek.cz
  35. 35. 2011 … 51 2010 … 59 2009 … 82 Michal Špaček @spazef0rze www.michalspacek.cz
  36. 36. Cross-Site Port Attack (XSPA) Michal Špaček @spazef0rze www.michalspacek.cz
  37. 37. Michal Špaček @spazef0rze www.michalspacek.cz
  38. 38. Michal Špaček @spazef0rze www.michalspacek.cz
  39. 39. Distributed Denial-of-Service (DDoS) Michal Špaček @spazef0rze www.michalspacek.cz
  40. 40. Hashování hesel Nepoužívat MD5 Ani SHA-1 Michal Špaček @spazef0rze www.michalspacek.cz
  41. 41. Michal Špaček @spazef0rze www.michalspacek.cz
  42. 42. Řešení? SHA-512 a salt? hash_hmac() Michal Špaček @spazef0rze www.michalspacek.cz
  43. 43. oclHashcat md5($pass.$salt) md5($salt.$pass) sha1($pass.$salt) sha1($salt.$pass) Michal Špaček @spazef0rze www.michalspacek.cz
  44. 44. Lepší řešení? scrypt Michal Špaček @spazef0rze www.michalspacek.cz
  45. 45. bcrypt Blowfish hashing Michal Špaček @spazef0rze www.michalspacek.cz
  46. 46. crypt() salt=$2y$… password_hash() password_verify() Michal Špaček @spazef0rze www.michalspacek.cz
  47. 47. Michal Špaček @spazef0rze www.michalspacek.cz
  48. 48. Michal Špaček @spazef0rze www.michalspacek.cz
  49. 49. robots.txt Michal Špaček @spazef0rze www.michalspacek.cz
  50. 50. Michal Špaček @spazef0rze www.michalspacek.cz
  51. 51. /.svn/entries Michal Špaček @spazef0rze www.michalspacek.cz
  52. 52. http://hostname/.svn/text-base/index.php.svn-base Michal Špaček @spazef0rze www.michalspacek.cz
  53. 53. That's it. That's me. Michal Špaček www.michalspacek.cz @spazef0rze Přijďte na školení http://www.michalspacek.cz/skoleni

×