Como Fazer Apps Node.Js Seguras

1,371 views
1,179 views

Published on

Talk apresentado no segundo Meetup de Node.JS de São Paulo.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,371
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
10
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Como Fazer Apps Node.Js Seguras

  1. 1. Como Fazer Apps Node.Js SEGURAS
  2. 2. @paulo_hp
  3. 3. Eu não sou um especialista em segurança web!
  4. 4. Como você inicia uma aplicação?
  5. 5. Muita Coisa Pra Pensar
  6. 6. Regras de Negócio Modelagem Frameworks? Node.JS?
  7. 7. Você trabalha igual louco e coloca o app em produção
  8. 8. + usuários + visibilidade + exposição
  9. 9. Você fica vulnerável
  10. 10. SE GU RAN ÇA?
  11. 11. Segurança quase nunca entra em pauta!
  12. 12. Maioria dos ataques acontecem na camada de aplicação
  13. 13. Como prevenir esses ataques em nossos apps Node.JS?
  14. 14. Defesa
  15. 15. XSS
  16. 16. localhost:8000/?name=<script>alert(1)</script>
  17. 17. Encode Untrusted Data
  18. 18. SSJSi
  19. 19. eval() is evil
  20. 20. {"symbol" : "ASDF"} A chamada para eval avalia assim a string: ({"symbol" : "ASDF"})
  21. 21. Mas se ao invés de um simples JSON, o atacante enviar um código JS malicioso?
  22. 22. res.end('success')
  23. 23. O servidor executa esse comando, retornando o texto "success" como resposta HTTP.
  24. 24. Com essa resposta, o atacante sabe que seu server é vulnerável.
  25. 25. E assim ele pode enviar códigos que realmente causam estragos.
  26. 26. DoS*deprecated
  27. 27. Um ataque efetivo DoS pode ser executado simplesmente enviando um comando
  28. 28. while(1)
  29. 29. Um descuido como esse pode dar acesso aos arquivos, processos e até ao seu banco NoSQL
  30. 30. Algumas pequenas coisas podem ser feitas para evitar, como validar inputs com RegEx e evitando o uso de eval()
  31. 31. e se você usa versão antiga, ATUALIZE!
  32. 32. CSRF
  33. 33. Ativando o uso de CSRF no Express.JS
  34. 34. app.js form.html
  35. 35. Garanta o uso correto dos metodos HTTP
  36. 36. Nomes de Cookies Genéricos
  37. 37. X-Powerd-By
  38. 38. Esse valor não interessa muito pra nós, e pode ser removido facilmente
  39. 39. Avalie os módulos externos do NPM
  40. 40. nodesecurity.io
  41. 41. Eduque os desenvolvedores com OWASP Top 10 owasp.org
  42. 42. Inclua testes de segurança no ciclo de desenvolvimento
  43. 43. vlw :D

×