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
280
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
26
Introdução ao GraphQL
paulohp
0
29
GraphQL 101
paulohp
0
69
Side Effects: Uma Saga até o React
paulohp
0
58
MobX: State Management made easy
paulohp
0
69
Docker: The Rise of Containers
paulohp
0
77
We Work Remotely
paulohp
2
81
Angular2
paulohp
0
220
Node.js Codelab
paulohp
1
160
Other Decks in Programming
See All in Programming
品質とスピードを両立: TypeScriptの柔軟な型システムをバックエンドで活用する
kosui
8
2.2k
コーンフレークから始める モデリング会話入門
ogurotakayuki
0
280
今、知っておきたい! 生成AIエージェントの世界
elith
3
340
脱・初心者!脱・マネコン!AWS CDKを使ってみませんか!?
har1101
0
300
入門 AWS Amplify Gen2 / Introduction to AWS Amplify Gen2
genkiogasawara
1
310
コードレビューで学ぶ!Kotlinオブジェクト指向デザインパターン
akkie76
2
180
Site Reliability Engineering for GMO
pyama86
6
940
Milestoner
bkuhlmann
1
400
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
340
Ruby Pattern Matching
bkuhlmann
0
920
StreamlitとTerraformでデータカタログを作った話
gussan0223
0
300
Ruby Function Composition
bkuhlmann
1
330
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
It's Worth the Effort
3n
180
27k
Side Projects
sachag
451
41k
Reflections from 52 weeks, 52 projects
jeffersonlam
344
19k
The Language of Interfaces
destraynor
151
23k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
658
120k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Learning to Love Humans: Emotional Interface Design
aarron
266
39k
The Power of CSS Pseudo Elements
geoffreycrofte
59
5k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Building a Modern Day E-commerce SEO Strategy
aleyda
16
6.4k
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