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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
57
Introdução ao GraphQL
paulohp
0
57
GraphQL 101
paulohp
0
110
Side Effects: Uma Saga até o React
paulohp
0
93
MobX: State Management made easy
paulohp
0
93
Docker: The Rise of Containers
paulohp
0
120
We Work Remotely
paulohp
2
110
Angular2
paulohp
0
230
Node.js Codelab
paulohp
1
180
Other Decks in Programming
See All in Programming
Fundamentals of Software Engineering In the Age of AI
therealdanvega
2
260
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
500
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
1.1k
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
140
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
120
条件判定に名前、つけてますか? #phperkaigi #c
77web
1
350
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
160
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
350
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.1k
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.5k
How to stabilize UI tests using XCTest
akkeylab
0
130
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
240
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
93
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Scaling GitHub
holman
464
140k
Technical Leadership for Architectural Decision Making
baasie
3
300
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Designing for humans not robots
tammielis
254
26k
Navigating Weather and Climate Data
rabernat
0
140
Ethics towards AI in product and experience design
skipperchong
2
230
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
110
Abbi's Birthday
coloredviolet
2
5.5k
Ruling the World: When Life Gets Gamed
codingconduct
0
180
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