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
35
Introdução ao GraphQL
paulohp
0
41
GraphQL 101
paulohp
0
74
Side Effects: Uma Saga até o React
paulohp
0
79
MobX: State Management made easy
paulohp
0
81
Docker: The Rise of Containers
paulohp
0
85
We Work Remotely
paulohp
2
89
Angular2
paulohp
0
220
Node.js Codelab
paulohp
1
170
Other Decks in Programming
See All in Programming
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
0
150
Open source software: how to live long and go far
gaelvaroquaux
0
630
Ruby on cygwin 2025-02
fd0
0
140
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1k
Immutable ActiveRecord
megane42
0
140
WebDriver BiDiとは何なのか
yotahada3
1
140
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
120
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
710
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
900
sappoRo.R #12 初心者セッション
kosugitti
0
250
Spring gRPC について / About Spring gRPC
mackey0225
0
220
Pythonでもちょっとリッチな見た目のアプリを設計してみる
ueponx
1
560
Featured
See All Featured
Navigating Team Friction
lara
183
15k
Thoughts on Productivity
jonyablonski
69
4.5k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
4 Signs Your Business is Dying
shpigford
182
22k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
10
1.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
9
440
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Producing Creativity
orderedlist
PRO
344
39k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
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