Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
47
Introdução ao GraphQL
paulohp
0
50
GraphQL 101
paulohp
0
92
Side Effects: Uma Saga até o React
paulohp
0
87
MobX: State Management made easy
paulohp
0
87
Docker: The Rise of Containers
paulohp
0
99
We Work Remotely
paulohp
2
100
Angular2
paulohp
0
230
Node.js Codelab
paulohp
1
170
Other Decks in Programming
See All in Programming
AIコーディングエージェント(Gemini)
kondai24
0
180
251126 TestState APIってなんだっけ?Step Functionsテストどう変わる?
east_takumi
0
300
connect-python: convenient protobuf RPC for Python
anuraaga
0
370
配送計画の均等化機能を提供する取り組みについて(⽩⾦鉱業 Meetup Vol.21@六本⽊(数理最適化編))
izu_nori
0
140
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
6.7k
分散DBって何者なんだ... Spannerから学ぶRDBとの違い
iwashi623
0
180
FluorTracer / RayTracingCamp11
kugimasa
0
200
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
160
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.2k
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
180
チームをチームにするEM
hitode909
0
260
エディターってAIで操作できるんだぜ
kis9a
0
670
Featured
See All Featured
A designer walks into a library…
pauljervisheath
210
24k
Speed Design
sergeychernyshev
33
1.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
A better future with KSS
kneath
240
18k
It's Worth the Effort
3n
187
29k
Designing for humans not robots
tammielis
254
26k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
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