SlideShare uma empresa Scribd logo
1 de 39
Desenvolvimento WEB
Rubens Guimarães
rubens.guimaraes@e-seth.com.br
Engenheiro de Software com especialização na Academia Latino-Americana de Segurança da Informação.
Especialização em Stanford University - Palo Alto CA – Databases de Porte, Engenharia Avançada.
Desenvolve projetos de tecnologia de ponta para empresas de porte, instituições financeiras, redes de franquias e
marcas reconhecidas na América Latina, EUA e Europa.
Faz parte de um seleto grupo de palestrantes oficiais Microsoft.
Mais de 100 certificações e Títulos no Brasil e exterior.
Reconhecimentos e homenagens em projetos para o Exército Brasileiro, Polícia Militar, Governo e Universidades.
Participa de bancas de TCC. Instrutor e Palestrante oficial SUCESU-SP. Instrutor do SENAC.
Palestrante do Suporte Acadêmico Microsoft.
Profissional 5 Estrelas Microsoft. Beta Tester oficial Microsoft, participa de debates e mesas redondas em
Universidades em todo o país.
Títulos de Especialista em Segurança no desenvolvimento para Web, Performance em Databases, .NET.
Reconhecimentos por desenvolver metodologias e materiais didáticos de tecnologias e processos para redes de ensino
que formam mais de 100.000 profissionais por ano.
Participa de Grupos de Estudos e Pesquisas de tecnologias da NASA.
Especialista em mais de 30 linguagens de programação, tecnologias de design, navegabilidade intuitiva, performance e
segurança.
Fotógrafo e Ilustrador Profissional.
Mais de 8000 horas de treinamentos ministrados. Mais de 1000 projetos desenvolvidos.
Rubens Guimarães - Diretor de Tecnologia da eSeth
INFORMAÇÃO
INFORMAÇÕES EM TEMPO REAL
A TECNOLOGIA APROXIMA AS PESSOAS
A CADA MINUTO
2 MILHÕES
DE PESQUISAS SÃO REALIZADAS NO GOOGLE
Pessoas
Informações
Ideias
Inteligências
Culturas
Opiniões
Conceitos
Know-how
Conhecimento
TECNOLOGIAS NA NUVEM
Colaboração em time
Sistemas não
dependentes de
Computadores
Conectado sempre
Usuários
produtivos
Compartilhar o
conhecimento
corporativo
Objetivos de negócios
Informações
inteligentes
Redução de custos
Melhor
percepção em
Relação à
concorrência
Aumento da
capacidade
Operacional
Aumento de
lucros
Estrutura para Projetos Web
Linguagens
Softwares
Design
Arquitetura
Requisitos
Processos
Performance
Segurança
Navegabilidade e…
Bancode
dados
Servidores
Rede
DESENVOLVIMENTO RESPONSIVO
LAYOUT E DESIGN
www.mcdonalds.com.br
www.nike.com.br
www.nespresso.com.br
www.vidaleve.ntr.br
www.igestaoodonto.com.br
www.linklivros.com.br
www.add.org.br
Site x Portal
IMAGENS
Formatos
Dimensões
Manipulação e Tratamento
Kb x Qualidade
ARQUITETURA E PROCESSAMENTO WEB
Servidor Web
Comportamentos do navegador
Page Load, POST, Request, Sessões
Framework que fornecesse um kit de ferramentas para projetos web de
forma fácil e produtiva.
Possui elementos de interface HTML bem, elegantes e agradáveis.
Utiliza elementos HTML, DOM, JavaScript e estilos CSS.
O Ajax realiza chamadas assíncronas entre as tecnologias Javascript e
XML para fazer o carregamento de uma página web. Com o uso do Ajax
é possível clicar em um link e carregar a página ser dar o famoso
refresh que é aquela atualização que recarrega toda a página.
jQuery é um framework, ou seja, é o próprio javascript redefinido de
uma maneira mais moderno, simples de usar e com o uso de menos
código.
SEGURANÇA
Impacto das Violações de Segurança
Perda de
receita
Danos à
confiança do
investidor
Danos à
reputação
Perda ou
comprometimento
de dados
Interrupção do
processo de
negócios
Danos à
confiança do
cliente
Conseqüências
legais
Gerenciamento de sessão 79%
Vulnerabilidades Comuns
Porcentagem de aplicativos que possuem “falhas de design" nas áreas indicadas
Controle de acesso 64%
Algoritmos de criptografia 61%
Manipulação de parâmetro 73%
Manipulação de dados confidenciais 41%
Validação de entrada 32%
Controles administrativos 36%
Ataques comuns - REDES
Portas
Farejadores
de pacotes
Denial of
service
REDES
Ataques comuns - SERVIDORES
Buffer overflows
- execução de
códigos mal-
intensionados
Upload de
arquivos
Acessos não-
autorizados
SERVIDORES
Ataques comuns - APLICATIVOS
Entrada de dados
em formulários
SQL Injection
Sequestro de
sessão
Farejador de
tráfego para roubar
informações
APLICATIVOS
Exemplo de falha
<form name="form1" method="post" action="insere.asp">
<p>Nome:
<input name="nome" type="text" id="nome" size="50">
<input type="submit" name="Submit" value="Submit">
</p>
</form>
<%
teste = request.form("nome")
response.Write teste
%>
Exemplo de falha
<script>document.location.replace
("http://www.paginaruim.com")</script>
Ou
<div style="display: none">
Proteção – Exemplo
<%
teste = trim(request.form("nome"))
function Valida(teste)
for i = 1 to len(teste)
Letra = mid(teste, i, 1)
Select Case Letra
Case ">","<","","'","!","&","(",")","?“, “%”
Letra = ""
End Select
texto = texto & Letra
next
Valida = texto
end function
teste = Valida(teste)
%>
Spoofing
Qualquer coisa que venha de um navegador Internet pode ser facilmente
falsificada em uma técnica conhecida em inglês como “spoofing”.
É perfeitamente possível que seu programa receba dados que não foram
colocados lá por nenhum usuário e sim por um programa malicioso.
Valide tudo que vier do navegador, como por exemplo:
•Se as strings tem comprimento adequado; não confie no máximo
especificado em uma tag <INPUT>
•Se o valor retornado por uma tag <SELECT> foi realmente colocado lá
•Se os radiobuttons são realmente mutuamente exclusivos
Validando a entrada
Filtrar caracteres potencialmente perigosos
Usar HTML-encode para saídas em páginas Web
Se possível, evitar uso de nomes de arquivos como entrada
•Não permitir caracteres como "<" e "--"
•Definir caracteres aceitáveis e recusar todos os demais
Usar codificações de caracteres "seguras"
<globalization requestEncoding="ISO-8859-1"
responseEncoding="ISO-8859-1" />
SQL
String nome = Request [“nome”];
String senha = Request [“senha”];
sql = "select * from usuarios where nome = '" & nome & "' and senha = '" &
senha & "'"
sql = "select * from usuarios where nome = " or 1=1—
" or 1=1-- corresponde a todos os registros da tabela e -- comenta o restante
ignorando a senha
Dicas
Function LimpaPalavras(input)
dim lixo
dim textoOK
lixo = array ( "select" , "drop" , ";" , "--" , "insert" , "delete" , "xp_")
textoOK = input
for i = 0 to uBound(lixo)
textoOK = replace( textoOK , lixo(i) , "")
next
LimpaPalavras = textoOK
end Function
Hash
Imports System
Imports System.Security.Cryptography
Imports System.Text
Module Module1
Sub Main()
Dim HashValue() As Byte
Dim MessageString As String = "This is the original message!"
Dim UE As New UnicodeEncoding()
Dim MessageBytes As Byte() = UE.GetBytes(MessageString)
Dim SHhash As New SHA1Managed()
'Create the hash value from the array of bytes.
HashValue = SHhash.ComputeHash(MessageBytes)
'Display the hash value to the console.
Dim b As Byte
For Each b In HashValue
Console.Write("{0} ", b)
Next b
End Sub
End Module
Conexões
<connectionStrings>
<add name="DatabaseConnection"
connectionString="Data Source=(local);Initial
Catalog=Northwind;Integrated Security=true;"
KeyRestrictions="Encrypt=;Packet Size=;"
KeyRestrictionBehavior="AllowOnly" />
</connectionStrings>
PERCEPÇÃO DE PRODUTOS
PERCEPÇÃO DE PRODUTOS
Rubens Guimarães
rubens.guimaraes@e-seth.com.br

Mais conteúdo relacionado

Mais procurados

Teste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingTeste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingCristiano Caetano
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraClavis Segurança da Informação
 
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureGlobal Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureRubens Guimarães - MTAC MVP
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesClavis Segurança da Informação
 
Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Pablo Ribeiro
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...Clavis Segurança da Informação
 
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEBDica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEBAlcyon Ferreira de Souza Junior, MSc
 
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o WmapDescobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o WmapClavis Segurança da Informação
 
Testes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidadesTestes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidadesQualister
 
Como Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasComo Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasPaulo Pires
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareAlcyon Ferreira de Souza Junior, MSc
 
Saindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações webSaindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações webIgor Carneiro
 
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...Clavis Segurança da Informação
 
Engenharia de Software II - Teste de segurança de software
Engenharia de Software  II - Teste de segurança de softwareEngenharia de Software  II - Teste de segurança de software
Engenharia de Software II - Teste de segurança de softwareJuliano Padilha
 

Mais procurados (20)

Ameacas e Vulnerabilidades em Apps Web-2013
Ameacas e Vulnerabilidades em Apps Web-2013Ameacas e Vulnerabilidades em Apps Web-2013
Ameacas e Vulnerabilidades em Apps Web-2013
 
Teste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingTeste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testing
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
 
Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)
 
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureGlobal Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
 
Tratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com phpTratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com php
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )Teste de segurança em aplicações web ( sites )
Teste de segurança em aplicações web ( sites )
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
 
THE WebSec
THE WebSecTHE WebSec
THE WebSec
 
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEBDica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
Dica 02 - Como mitigar os ataques de SQL Injection em aplicações WEB
 
Defensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon JuniorDefensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon Junior
 
PHP Seguro em 2013
PHP Seguro em 2013PHP Seguro em 2013
PHP Seguro em 2013
 
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o WmapDescobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
 
Testes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidadesTestes de segurança desafios e oportunidades
Testes de segurança desafios e oportunidades
 
Como Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js SegurasComo Fazer Apps Node.Js Seguras
Como Fazer Apps Node.Js Seguras
 
Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de Software
 
Saindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações webSaindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações web
 
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
 
Engenharia de Software II - Teste de segurança de software
Engenharia de Software  II - Teste de segurança de softwareEngenharia de Software  II - Teste de segurança de software
Engenharia de Software II - Teste de segurança de software
 

Semelhante a Desenvolvimento Web - Palestra Coding Night #3 - Microsoft

InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...iMasters
 
Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguroCharles Fortes
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Clavis Segurança da Informação
 
Importância dos Testes em Sistemas para Internet
Importância dos Testes em Sistemas para Internet Importância dos Testes em Sistemas para Internet
Importância dos Testes em Sistemas para Internet Elvis Fusco
 
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re....Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...iMasters
 
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Renato Groff
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes AutomatizadosSamanta Cicilia
 
Aula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação WebAula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação WebMatheus Fidelis
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoClavis Segurança da Informação
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoÉberli Cabistani Riella
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012Marcio Cunha
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumSandy Maciel
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Alex Hübner
 

Semelhante a Desenvolvimento Web - Palestra Coding Night #3 - Microsoft (20)

InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
 
Desenvolvimento de software seguro
Desenvolvimento de software seguroDesenvolvimento de software seguro
Desenvolvimento de software seguro
 
Owasp web app_flaws
Owasp web app_flawsOwasp web app_flaws
Owasp web app_flaws
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
 
Importância dos Testes em Sistemas para Internet
Importância dos Testes em Sistemas para Internet Importância dos Testes em Sistemas para Internet
Importância dos Testes em Sistemas para Internet
 
Java security
Java securityJava security
Java security
 
Sql injection
Sql injectionSql injection
Sql injection
 
Oracle no Azure
Oracle no AzureOracle no Azure
Oracle no Azure
 
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re....Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
 
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
Segurança J2EE
Segurança J2EESegurança J2EE
Segurança J2EE
 
Aula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação WebAula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação Web
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
 
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo CustoJava No Setor Público: Produtividade, Flexibilidade e Baixo Custo
Java No Setor Público: Produtividade, Flexibilidade e Baixo Custo
 
Segurança Web com PHP5
Segurança Web com PHP5Segurança Web com PHP5
Segurança Web com PHP5
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando selenium
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?
 

Mais de Rubens Guimarães - MTAC MVP

Alta disponibilidade com bancos de dados relacionais no Azure
Alta disponibilidade com bancos de dados relacionais no AzureAlta disponibilidade com bancos de dados relacionais no Azure
Alta disponibilidade com bancos de dados relacionais no AzureRubens Guimarães - MTAC MVP
 
Série Descomplicando o Azure - Apresentação de recursos gerais
Série Descomplicando o Azure - Apresentação de recursos geraisSérie Descomplicando o Azure - Apresentação de recursos gerais
Série Descomplicando o Azure - Apresentação de recursos geraisRubens Guimarães - MTAC MVP
 
Armazenamento Elástico de Dados Relacionais no Azure
Armazenamento Elástico de Dados Relacionais no AzureArmazenamento Elástico de Dados Relacionais no Azure
Armazenamento Elástico de Dados Relacionais no AzureRubens Guimarães - MTAC MVP
 
Série: Descomplicando o Azure. Aula 1 - Introdução ao Azure
Série: Descomplicando o Azure. Aula 1 - Introdução ao AzureSérie: Descomplicando o Azure. Aula 1 - Introdução ao Azure
Série: Descomplicando o Azure. Aula 1 - Introdução ao AzureRubens Guimarães - MTAC MVP
 
Varejo Competitivo - Prepare-se para as Vendas de Fim de ano
Varejo Competitivo - Prepare-se para as Vendas de Fim de anoVarejo Competitivo - Prepare-se para as Vendas de Fim de ano
Varejo Competitivo - Prepare-se para as Vendas de Fim de anoRubens Guimarães - MTAC MVP
 
Segurança no Desenvolvimento WEB - Técnicas Profissionais
Segurança no Desenvolvimento WEB - Técnicas ProfissionaisSegurança no Desenvolvimento WEB - Técnicas Profissionais
Segurança no Desenvolvimento WEB - Técnicas ProfissionaisRubens Guimarães - MTAC MVP
 

Mais de Rubens Guimarães - MTAC MVP (9)

AI, Serviços Cognitivos e Machine Learning
AI, Serviços Cognitivos e Machine LearningAI, Serviços Cognitivos e Machine Learning
AI, Serviços Cognitivos e Machine Learning
 
Alta disponibilidade com bancos de dados relacionais no Azure
Alta disponibilidade com bancos de dados relacionais no AzureAlta disponibilidade com bancos de dados relacionais no Azure
Alta disponibilidade com bancos de dados relacionais no Azure
 
Série Descomplicando o Azure - Apresentação de recursos gerais
Série Descomplicando o Azure - Apresentação de recursos geraisSérie Descomplicando o Azure - Apresentação de recursos gerais
Série Descomplicando o Azure - Apresentação de recursos gerais
 
Armazenamento Elástico de Dados Relacionais no Azure
Armazenamento Elástico de Dados Relacionais no AzureArmazenamento Elástico de Dados Relacionais no Azure
Armazenamento Elástico de Dados Relacionais no Azure
 
Bancos de Dados no Azure - Arquiteturas
Bancos de Dados no Azure - ArquiteturasBancos de Dados no Azure - Arquiteturas
Bancos de Dados no Azure - Arquiteturas
 
Série: Descomplicando o Azure. Aula 1 - Introdução ao Azure
Série: Descomplicando o Azure. Aula 1 - Introdução ao AzureSérie: Descomplicando o Azure. Aula 1 - Introdução ao Azure
Série: Descomplicando o Azure. Aula 1 - Introdução ao Azure
 
Varejo Competitivo - Prepare-se para as Vendas de Fim de ano
Varejo Competitivo - Prepare-se para as Vendas de Fim de anoVarejo Competitivo - Prepare-se para as Vendas de Fim de ano
Varejo Competitivo - Prepare-se para as Vendas de Fim de ano
 
Azure Weekend 2016 - Bancos de Dados no Azure
Azure Weekend 2016 - Bancos de Dados no AzureAzure Weekend 2016 - Bancos de Dados no Azure
Azure Weekend 2016 - Bancos de Dados no Azure
 
Segurança no Desenvolvimento WEB - Técnicas Profissionais
Segurança no Desenvolvimento WEB - Técnicas ProfissionaisSegurança no Desenvolvimento WEB - Técnicas Profissionais
Segurança no Desenvolvimento WEB - Técnicas Profissionais
 

Desenvolvimento Web - Palestra Coding Night #3 - Microsoft

  • 2. Engenheiro de Software com especialização na Academia Latino-Americana de Segurança da Informação. Especialização em Stanford University - Palo Alto CA – Databases de Porte, Engenharia Avançada. Desenvolve projetos de tecnologia de ponta para empresas de porte, instituições financeiras, redes de franquias e marcas reconhecidas na América Latina, EUA e Europa. Faz parte de um seleto grupo de palestrantes oficiais Microsoft. Mais de 100 certificações e Títulos no Brasil e exterior. Reconhecimentos e homenagens em projetos para o Exército Brasileiro, Polícia Militar, Governo e Universidades. Participa de bancas de TCC. Instrutor e Palestrante oficial SUCESU-SP. Instrutor do SENAC. Palestrante do Suporte Acadêmico Microsoft. Profissional 5 Estrelas Microsoft. Beta Tester oficial Microsoft, participa de debates e mesas redondas em Universidades em todo o país. Títulos de Especialista em Segurança no desenvolvimento para Web, Performance em Databases, .NET. Reconhecimentos por desenvolver metodologias e materiais didáticos de tecnologias e processos para redes de ensino que formam mais de 100.000 profissionais por ano. Participa de Grupos de Estudos e Pesquisas de tecnologias da NASA. Especialista em mais de 30 linguagens de programação, tecnologias de design, navegabilidade intuitiva, performance e segurança. Fotógrafo e Ilustrador Profissional. Mais de 8000 horas de treinamentos ministrados. Mais de 1000 projetos desenvolvidos. Rubens Guimarães - Diretor de Tecnologia da eSeth
  • 4.
  • 5.
  • 6. INFORMAÇÕES EM TEMPO REAL A TECNOLOGIA APROXIMA AS PESSOAS
  • 7. A CADA MINUTO 2 MILHÕES DE PESQUISAS SÃO REALIZADAS NO GOOGLE
  • 8.
  • 10.
  • 12.
  • 13. Colaboração em time Sistemas não dependentes de Computadores Conectado sempre Usuários produtivos Compartilhar o conhecimento corporativo Objetivos de negócios Informações inteligentes Redução de custos Melhor percepção em Relação à concorrência Aumento da capacidade Operacional Aumento de lucros
  • 14.
  • 15. Estrutura para Projetos Web Linguagens Softwares Design Arquitetura Requisitos Processos Performance Segurança Navegabilidade e… Bancode dados Servidores Rede
  • 19. ARQUITETURA E PROCESSAMENTO WEB Servidor Web Comportamentos do navegador Page Load, POST, Request, Sessões
  • 20.
  • 21. Framework que fornecesse um kit de ferramentas para projetos web de forma fácil e produtiva. Possui elementos de interface HTML bem, elegantes e agradáveis. Utiliza elementos HTML, DOM, JavaScript e estilos CSS. O Ajax realiza chamadas assíncronas entre as tecnologias Javascript e XML para fazer o carregamento de uma página web. Com o uso do Ajax é possível clicar em um link e carregar a página ser dar o famoso refresh que é aquela atualização que recarrega toda a página. jQuery é um framework, ou seja, é o próprio javascript redefinido de uma maneira mais moderno, simples de usar e com o uso de menos código.
  • 23. Impacto das Violações de Segurança Perda de receita Danos à confiança do investidor Danos à reputação Perda ou comprometimento de dados Interrupção do processo de negócios Danos à confiança do cliente Conseqüências legais
  • 24. Gerenciamento de sessão 79% Vulnerabilidades Comuns Porcentagem de aplicativos que possuem “falhas de design" nas áreas indicadas Controle de acesso 64% Algoritmos de criptografia 61% Manipulação de parâmetro 73% Manipulação de dados confidenciais 41% Validação de entrada 32% Controles administrativos 36%
  • 25. Ataques comuns - REDES Portas Farejadores de pacotes Denial of service REDES
  • 26. Ataques comuns - SERVIDORES Buffer overflows - execução de códigos mal- intensionados Upload de arquivos Acessos não- autorizados SERVIDORES
  • 27. Ataques comuns - APLICATIVOS Entrada de dados em formulários SQL Injection Sequestro de sessão Farejador de tráfego para roubar informações APLICATIVOS
  • 28. Exemplo de falha <form name="form1" method="post" action="insere.asp"> <p>Nome: <input name="nome" type="text" id="nome" size="50"> <input type="submit" name="Submit" value="Submit"> </p> </form> <% teste = request.form("nome") response.Write teste %>
  • 30. Proteção – Exemplo <% teste = trim(request.form("nome")) function Valida(teste) for i = 1 to len(teste) Letra = mid(teste, i, 1) Select Case Letra Case ">","<","","'","!","&","(",")","?“, “%” Letra = "" End Select texto = texto & Letra next Valida = texto end function teste = Valida(teste) %>
  • 31. Spoofing Qualquer coisa que venha de um navegador Internet pode ser facilmente falsificada em uma técnica conhecida em inglês como “spoofing”. É perfeitamente possível que seu programa receba dados que não foram colocados lá por nenhum usuário e sim por um programa malicioso. Valide tudo que vier do navegador, como por exemplo: •Se as strings tem comprimento adequado; não confie no máximo especificado em uma tag <INPUT> •Se o valor retornado por uma tag <SELECT> foi realmente colocado lá •Se os radiobuttons são realmente mutuamente exclusivos
  • 32. Validando a entrada Filtrar caracteres potencialmente perigosos Usar HTML-encode para saídas em páginas Web Se possível, evitar uso de nomes de arquivos como entrada •Não permitir caracteres como "<" e "--" •Definir caracteres aceitáveis e recusar todos os demais Usar codificações de caracteres "seguras" <globalization requestEncoding="ISO-8859-1" responseEncoding="ISO-8859-1" />
  • 33. SQL String nome = Request [“nome”]; String senha = Request [“senha”]; sql = "select * from usuarios where nome = '" & nome & "' and senha = '" & senha & "'" sql = "select * from usuarios where nome = " or 1=1— " or 1=1-- corresponde a todos os registros da tabela e -- comenta o restante ignorando a senha
  • 34. Dicas Function LimpaPalavras(input) dim lixo dim textoOK lixo = array ( "select" , "drop" , ";" , "--" , "insert" , "delete" , "xp_") textoOK = input for i = 0 to uBound(lixo) textoOK = replace( textoOK , lixo(i) , "") next LimpaPalavras = textoOK end Function
  • 35. Hash Imports System Imports System.Security.Cryptography Imports System.Text Module Module1 Sub Main() Dim HashValue() As Byte Dim MessageString As String = "This is the original message!" Dim UE As New UnicodeEncoding() Dim MessageBytes As Byte() = UE.GetBytes(MessageString) Dim SHhash As New SHA1Managed() 'Create the hash value from the array of bytes. HashValue = SHhash.ComputeHash(MessageBytes) 'Display the hash value to the console. Dim b As Byte For Each b In HashValue Console.Write("{0} ", b) Next b End Sub End Module
  • 36. Conexões <connectionStrings> <add name="DatabaseConnection" connectionString="Data Source=(local);Initial Catalog=Northwind;Integrated Security=true;" KeyRestrictions="Encrypt=;Packet Size=;" KeyRestrictionBehavior="AllowOnly" /> </connectionStrings>