Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Como Fazer Apps Node.Js Seguras
Search
Paulo Pires
March 22, 2014
Programming
4
280
Como Fazer Apps Node.Js Seguras
Paulo Pires
March 22, 2014
Tweet
Share
More Decks by Paulo Pires
See All by Paulo Pires
Introdução ao WebAssembly
paulohp
0
32
Introdução ao GraphQL
paulohp
0
39
GraphQL 101
paulohp
0
74
Side Effects: Uma Saga até o React
paulohp
0
77
MobX: State Management made easy
paulohp
0
80
Docker: The Rise of Containers
paulohp
0
84
We Work Remotely
paulohp
2
88
Angular2
paulohp
0
220
Node.js Codelab
paulohp
1
160
Other Decks in Programming
See All in Programming
HTTP compression in PHP and Symfony apps
dunglas
2
1.7k
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
270
php-conference-japan-2024
tasuku43
0
310
テストコード書いてみませんか?
onopon
2
130
Go の GC の不得意な部分を克服したい
taiyow
3
790
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
7
1.3k
testcontainers のススメ
sgash708
1
120
開発者とQAの越境で自動テストが増える開発プロセスを実現する
92thunder
1
190
CSC305 Lecture 26
javiergs
PRO
0
140
fs2-io を試してたらバグを見つけて直した話
chencmd
0
240
From Translations to Multi Dimension Entities
alexanderschranz
2
130
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Into the Great Unknown - MozCon
thekraken
33
1.5k
The Invisible Side of Design
smashingmag
298
50k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Optimizing for Happiness
mojombo
376
70k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Building Adaptive Systems
keathley
38
2.3k
Speed Design
sergeychernyshev
25
670
Adopting Sorbet at Scale
ufuk
73
9.1k
Transcript
Como Fazer Apps Node.Js SEGURAS
@paulo_hp
None
Eu não sou um especialista em segurança web!
Como você inicia uma aplicação?
Muita Coisa Pra Pensar
Regras de Negócio Modelagem Frameworks? Node.JS?
Você trabalha igual louco e coloca o app em produção
+ usuários + visibilidade + exposição
Você fica vulnerável
SE GU RAN ÇA?
Segurança quase nunca entra em pauta!
Maioria dos ataques acontecem na camada de aplicação
Como prevenir esses ataques em nossos apps Node.JS?
Defesa
XSS
localhost:8000/?name=<script>alert(1)</script>
Encode Untrusted Data
SSJSi
eval() is evil
{"symbol" : "ASDF"} A chamada para eval avalia assim a
string: ({"symbol" : "ASDF"})
Mas se ao invés de um simples JSON, o atacante
enviar um código JS malicioso?
res.end('success')
O servidor executa esse comando, retornando o texto "success" como
resposta HTTP.
Com essa resposta, o atacante sabe que seu server é
vulnerável.
E assim ele pode enviar códigos que realmente causam estragos.
DoS *deprecated
Um ataque efetivo DoS pode ser executado simplesmente enviando um
comando
while(1)
Um descuido como esse pode dar acesso aos arquivos, processos
e até ao seu banco NoSQL
Algumas pequenas coisas podem ser feitas para evitar, como validar
inputs com RegEx e evitando o uso de eval()
e se você usa versão antiga, ATUALIZE!
CSRF
Ativando o uso de CSRF no Express.JS
app.js form.html
Garanta o uso correto dos metodos HTTP
Nomes de Cookies Genéricos
None
X-Powerd-By
Esse valor não interessa muito pra nós, e pode ser
removido facilmente
None
Avalie os módulos externos do NPM
nodesecurity.io
Eduque os desenvolvedores com OWASP Top 10 owasp.org
Inclua testes de segurança no ciclo de desenvolvimento
vlw :D