SlideShare uma empresa Scribd logo
Segurança Para Desenvolvedores Web
Alan Cezar
VETORES DE ATAQUE
muitas vezes são necessários diversas
vulnerabilidades para causar danos
graves ou permanentes
mas a facilidade
de alguns é
assustador
clickjacking
CLICKJACKING
exemplo
O atacante coloca sua
url de login dentro do
iframe em uma url
similar
usuário
senha
login
clickjacking
CLICKJACKING
exemplo
Os campos de input
do login são
sobrepostos por
campos falsos para a
captura dos dados
usuário
senha
login
login
clickjacking
CLICKJACKING
exemplo
O usuário digita seus
dados sensíveis como
usuário e senha
usuário
senha
login
gandalf.the.white
••••••••••••••
login
clickjacking
CLICKJACKING
exemplo
E sem perceber é
redirecionado para o
site real após um erro
simulado
usuário
senha
login
clickjacking
X-Frame-Options: DENY
Content-Security-Policy: frame-ancestors 'none'
Ninguém pode utilizar a sua
página em um iframe
clickjacking
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self'
Somente páginas do mesmo
domínio podem utilizar a sua
página em um iframe
clickjacking
X-Frame-Options: ALLOW-FROM https://example.com
Content-Security-Policy: frame-ancestors 'https://example.com'
Somente este domínio pode utilizar a sua
página em um iframe
clickjacking
regex
const regex = /^(A+)*B/;
regex
const regex = /^(A+)*B/;
o matching deve iniciar
no começo da string
regex
const regex = /^(A+)*B/;
grupo de captura com o primeiro
padrão de caracteres ocorrendo
uma ou mais vezes
regex
const regex = /^(A+)*B/;
espera que seja encontrado
um caractere B
regex
/^(A+)*B/.test('AAAC')
regex
/^(A+)*B/.test('AAAC')
no início da string a expressão A+ com
^ espera encontrar um caractere A
^A
regex
/^(A+)*B/.test('AAAC')
a expressão A+ se repete
encontrando o próximo caractere A
^A A+
regex
/^(A+)*B/.test('AAAC')
a expressão A+ se repete
encontrando o próximo caractere A
^A A+ A+
regex
/^(A+)*B/.test('AAAC')
^A A+ A+
a expressão A+ vai falhar ao
tentar dar match no caractere C
A+
regex
/^(A+)*B/.test('AAAC')
^A A+ A+
a expressão * tenta repetir o A+
mas não há mais matches
*A+
regex
/^(A+)*B/.test('AAAC')
^A A+ A+ A+
a expressão B falha ao tentar dar
match no caractere C
B*
regex
/^(A+)*B/.test('AAAC')
^A A+ A+ A+
nesse momento a engine volta
para o grupo anterior
B*
regex
/^(A+)*B/.test('AAAC')
^A A+ A+ A+
mas exclui o último caractere
antes de refazer todos os passos
B*
regex
com quantos caracteres
se afunda uma canoa?
regex
1 7
2 14
3 28
4 56
5 112
10 3.584
100 4.436.777.100.798.802.905.238.461.218.816
cuidado com o uso de
quantificadores
ou evite usar regex
regex
const vm = require('vm');
const sandbox = {
result: null,
value: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC'
};
const context = vm.createContext(sandbox);
const script = new vm.Script(`result = /^(A+)*B/.test(value);`);
try{
script.runInContext(context, { timeout: '1000' });
} catch(e){
console.log('ReDos occurred');
}
console.log(sandbox);
const vm = require('vm');
const sandbox = {
result: null,
value: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC'
};
const context = vm.createContext(sandbox);
const script = new vm.Script(`result = /^(A+)*B/.test(value);`);
try{
script.runInContext(context, { timeout: '1000' });
} catch(e){
console.log('ReDos occurred');
}
console.log(sandbox);
const vm = require('vm');
const sandbox = {
result: null,
value: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC'
};
const context = vm.createContext(sandbox);
const script = new vm.Script(`result = /^(A+)*B/.test(value);`);
try{
script.runInContext(context, { timeout: '1000' });
} catch(e){
console.log('ReDos occurred');
}
console.log(sandbox);
const vm = require('vm');
const sandbox = {
result: null,
value: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC'
};
const context = vm.createContext(sandbox);
const script = new vm.Script(`result = /^(A+)*B/.test(value);`);
try{
script.runInContext(context, { timeout: '1000' });
} catch(e){
console.log('ReDos occurred');
}
console.log(sandbox);
const vm = require('vm');
const sandbox = {
result: null,
value: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC'
};
const context = vm.createContext(sandbox);
const script = new vm.Script(`result = /^(A+)*B/.test(value);`);
try{
script.runInContext(context, { timeout: '1000' });
} catch(e){
console.log('ReDos occurred');
}
console.log(sandbox);
const vm = require('vm');
const sandbox = {
result: null,
value: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC'
};
const context = vm.createContext(sandbox);
const script = new vm.Script(`result = /^(A+)*B/.test(value);`);
try{
script.runInContext(context, { timeout: '1000' });
} catch(e){
console.log('ReDos occurred');
}
console.log(sandbox);
const vm = require('vm');
const sandbox = {
result: null,
value: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC'
};
const context = vm.createContext(sandbox);
const script = new vm.Script(`result = /^(A+)*B/.test(value);`);
try{
script.runInContext(context, { timeout: '1000' });
} catch(e){
console.log('ReDos occurred');
}
console.log(sandbox);
O importante é o que importa,
sacou?
existem pessoas estudando essas
vulnerabilidades e procurando
janelas no seu site
se você não se cuidar,
alguém vai entrar pela sua janela
FERRAMENTASferramentas
HELMET
https://helmetjs.github.io/
audit
https://docs.npmjs.com/getting-started/running-a-security-audit
https://www.owasp.org
dúvidas?
[JS EXPERIENCE 2018]  Segurança para Desenvolvedores JavaScript - Alan Cezar Araújo da Silva, OLX Brasil
[JS EXPERIENCE 2018]  Segurança para Desenvolvedores JavaScript - Alan Cezar Araújo da Silva, OLX Brasil

Mais conteúdo relacionado

Semelhante a [JS EXPERIENCE 2018] Segurança para Desenvolvedores JavaScript - Alan Cezar Araújo da Silva, OLX Brasil

BDD com Easyb
BDD com EasybBDD com Easyb
BDD com Easyb
Ismael
 
Novidades do ASP.NET Core 2.1
Novidades do ASP.NET Core 2.1Novidades do ASP.NET Core 2.1
Novidades do ASP.NET Core 2.1
Rodrigo Kono
 
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha CamaradaPhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
Henrique Gogó
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
Douglas V. Pasqua
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
Harlley Oliveira
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
Amazon Web Services LATAM
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
Amazon Web Services LATAM
 
Testando a integração com APIs - RSonRails/11
Testando a integração com APIs - RSonRails/11Testando a integração com APIs - RSonRails/11
Testando a integração com APIs - RSonRails/11
Rafael Souza
 
aula09-redux-firebase-auth.pdf
aula09-redux-firebase-auth.pdfaula09-redux-firebase-auth.pdf
aula09-redux-firebase-auth.pdf
BrunoTorres978388
 
Pacote web java script
Pacote web   java scriptPacote web   java script
Pacote web java script
João Henrique
 
burlando um WAF
burlando um WAFburlando um WAF
burlando um WAF
Antonio Costa aka Cooler_
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações WebCassio Ramos
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
Magno Logan
 
Aprender Javascript e jQuery (UFCD
Aprender Javascript e jQuery (UFCDAprender Javascript e jQuery (UFCD
Aprender Javascript e jQuery (UFCDAfonso Gomes
 
CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10
CJR, UnB
 
Web 2.0 com Ajax: JQuery/PHP (Aula 01)
Web 2.0 com Ajax: JQuery/PHP (Aula 01)Web 2.0 com Ajax: JQuery/PHP (Aula 01)
Web 2.0 com Ajax: JQuery/PHP (Aula 01)
Wagner Silva
 
Typescript: the Fun Parts (BrazilJS 2017)
Typescript: the Fun Parts (BrazilJS 2017)Typescript: the Fun Parts (BrazilJS 2017)
Typescript: the Fun Parts (BrazilJS 2017)
Loiane Groner
 

Semelhante a [JS EXPERIENCE 2018] Segurança para Desenvolvedores JavaScript - Alan Cezar Araújo da Silva, OLX Brasil (18)

BDD com Easyb
BDD com EasybBDD com Easyb
BDD com Easyb
 
Novidades do ASP.NET Core 2.1
Novidades do ASP.NET Core 2.1Novidades do ASP.NET Core 2.1
Novidades do ASP.NET Core 2.1
 
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha CamaradaPhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
Testando a integração com APIs - RSonRails/11
Testando a integração com APIs - RSonRails/11Testando a integração com APIs - RSonRails/11
Testando a integração com APIs - RSonRails/11
 
aula09-redux-firebase-auth.pdf
aula09-redux-firebase-auth.pdfaula09-redux-firebase-auth.pdf
aula09-redux-firebase-auth.pdf
 
Pacote web java script
Pacote web   java scriptPacote web   java script
Pacote web java script
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
burlando um WAF
burlando um WAFburlando um WAF
burlando um WAF
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações Web
 
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEEAppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
AppSec Latam 2011 - Treinamento OWASP Top 10 + JavaEE
 
Aprender Javascript e jQuery (UFCD
Aprender Javascript e jQuery (UFCDAprender Javascript e jQuery (UFCD
Aprender Javascript e jQuery (UFCD
 
CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10
 
Web 2.0 com Ajax: JQuery/PHP (Aula 01)
Web 2.0 com Ajax: JQuery/PHP (Aula 01)Web 2.0 com Ajax: JQuery/PHP (Aula 01)
Web 2.0 com Ajax: JQuery/PHP (Aula 01)
 
Typescript: the Fun Parts (BrazilJS 2017)
Typescript: the Fun Parts (BrazilJS 2017)Typescript: the Fun Parts (BrazilJS 2017)
Typescript: the Fun Parts (BrazilJS 2017)
 

Mais de iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
iMasters
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
iMasters
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
iMasters
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
iMasters
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
iMasters
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
iMasters
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
iMasters
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
iMasters
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
iMasters
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
iMasters
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
iMasters
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
iMasters
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
iMasters
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
iMasters
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
iMasters
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
iMasters
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
iMasters
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
iMasters
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
iMasters
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
iMasters
 

Mais de iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 

[JS EXPERIENCE 2018] Segurança para Desenvolvedores JavaScript - Alan Cezar Araújo da Silva, OLX Brasil