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
300
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Como Fazer Apps Node.Js Seguras
Paulo Pires
March 22, 2014
More Decks by Paulo Pires
See All by Paulo Pires
Introdução ao WebAssembly
paulohp
0
67
Introdução ao GraphQL
paulohp
0
64
GraphQL 101
paulohp
0
120
Side Effects: Uma Saga até o React
paulohp
0
100
MobX: State Management made easy
paulohp
0
100
Docker: The Rise of Containers
paulohp
0
130
We Work Remotely
paulohp
2
120
Angular2
paulohp
0
250
Node.js Codelab
paulohp
1
190
Other Decks in Programming
See All in Programming
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
400
高専キャリア LT 発表内容
crysta1221
4
4.3k
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
830
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
120
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
170
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.8k
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
200
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
530
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
190
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
仕様駆動開発の消費期限
watany
20
9.1k
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Claude Code のすすめ
schroneko
67
230k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
580
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
450
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
Navigating Weather and Climate Data
rabernat
0
490
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
820
YesSQL, Process and Tooling at Scale
rocio
174
15k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
GraphQLとの向き合い方2022年版
quramy
50
15k
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