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
290
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
40
Introdução ao GraphQL
paulohp
0
44
GraphQL 101
paulohp
0
77
Side Effects: Uma Saga até o React
paulohp
0
81
MobX: State Management made easy
paulohp
0
84
Docker: The Rise of Containers
paulohp
0
88
We Work Remotely
paulohp
2
92
Angular2
paulohp
0
220
Node.js Codelab
paulohp
1
170
Other Decks in Programming
See All in Programming
AtCoder Heuristic First-step Vol.1 講義スライド(山登り法・焼きなまし法編)
takumi152
4
1k
マルチアカウント環境での、そこまでがんばらない RI/SP 運用設計
wa6sn
0
680
PHPer's Guide to Daemon Crafting Taming and Summoning
uzulla
2
1.1k
AHC045_解説
shun_pi
0
260
SideKiqでジョブが二重起動した事象を深堀りしました
t_hatachi
0
270
OpenTelemetryを活用したObservability入門 / Introduction to Observability with OpenTelemetry
seike460
PRO
1
400
Rollupのビルド時間高速化によるプレビュー表示速度改善とバンドラとASTを駆使したプロダクト開発の難しさ
plaidtech
PRO
1
130
エンジニア未経験が最短で戦力になるためのTips
gokana
0
240
趣味全開のAITuber開発
kokushin
0
170
アーキテクトと美学 / Architecture and Aesthetics
nrslib
12
3.2k
私の愛したLaravel 〜レールを超えたその先へ〜
kentaroutakeda
12
3.7k
Boost Your Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
680
Featured
See All Featured
RailsConf 2023
tenderlove
29
1k
It's Worth the Effort
3n
184
28k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
135
33k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
25k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
177
52k
Adopting Sorbet at Scale
ufuk
75
9.3k
Done Done
chrislema
183
16k
Automating Front-end Workflow
addyosmani
1369
200k
Statistics for Hackers
jakevdp
798
220k
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