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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
51
Introdução ao GraphQL
paulohp
0
52
GraphQL 101
paulohp
0
100
Side Effects: Uma Saga até o React
paulohp
0
88
MobX: State Management made easy
paulohp
0
87
Docker: The Rise of Containers
paulohp
0
110
We Work Remotely
paulohp
2
100
Angular2
paulohp
0
230
Node.js Codelab
paulohp
1
180
Other Decks in Programming
See All in Programming
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
200
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
220
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
180
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
190
Oxlint JS plugins
kazupon
1
970
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
100
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
140
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
310
Patterns of Patterns
denyspoltorak
0
1.4k
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
51
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Leo the Paperboy
mayatellez
4
1.4k
Context Engineering - Making Every Token Count
addyosmani
9
660
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
170
How to make the Groovebox
asonas
2
1.9k
Designing for Performance
lara
610
70k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
120
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
57
50k
A designer walks into a library…
pauljervisheath
210
24k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
83
For a Future-Friendly Web
brad_frost
182
10k
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