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 Stanf...
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
conhecime...
Estrutura para Projetos Web
Linguagens
Softwares
Design
Arquitetura
Requisitos
Processos
Performance
Segurança
Navegabilid...
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...
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...
SEGURANÇA
Impacto das Violações de Segurança
Perda de
receita
Danos à
confiança do
investidor
Danos à
reputação
Perda ou
comprometim...
Gerenciamento de sessão 79%
Vulnerabilidades Comuns
Porcentagem de aplicativos que possuem “falhas de design" nas áreas in...
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-
auto...
Ataques comuns - APLICATIVOS
Entrada de dados
em formulários
SQL Injection
Sequestro de
sessão
Farejador de
tráfego para r...
Exemplo de falha
<form name="form1" method="post" action="insere.asp">
<p>Nome:
<input name="nome" type="text" id="nome" s...
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,...
Spoofing
Qualquer coisa que venha de um navegador Internet pode ser facilmente
falsificada em uma técnica conhecida em ing...
Validando a entrada
Filtrar caracteres potencialmente perigosos
Usar HTML-encode para saídas em páginas Web
Se possível, e...
SQL
String nome = Request [“nome”];
String senha = Request [“senha”];
sql = "select * from usuarios where nome = '" & nome...
Dicas
Function LimpaPalavras(input)
dim lixo
dim textoOK
lixo = array ( "select" , "drop" , ";" , "--" , "insert" , "delet...
Hash
Imports System
Imports System.Security.Cryptography
Imports System.Text
Module Module1
Sub Main()
Dim HashValue() As ...
Conexões
<connectionStrings>
<add name="DatabaseConnection"
connectionString="Data Source=(local);Initial
Catalog=Northwin...
PERCEPÇÃO DE PRODUTOS
PERCEPÇÃO DE PRODUTOS
Rubens Guimarães
rubens.guimaraes@e-seth.com.br
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Desenvolvimento Web - Palestra Coding Night #3 - Microsoft
Próximos SlideShares
Carregando em…5
×

Desenvolvimento Web - Palestra Coding Night #3 - Microsoft

185 visualizações

Publicada em

Palestra realizada no evento Coding Night #3 - Microsoft

- Cenário atual no Desenvolvimento Web;
- Mercado x Perfil dos usuários;
- Introdução à tecnologias Web;
- Design e Layout atualizado;
- Arquitetura de Processamento Web;
- HTML5 e CSS3;
- Utilizando Bootstrap;
- Introdução ao jQuery;
- Linguagens de Programação Web - Back End;
- Banco de dados;
- Introdução ao Desenvolvimento Seguro;
- Técnicas de Performance e Desempenho

Publicada em: Internet
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
185
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvimento Web - Palestra Coding Night #3 - Microsoft

  1. 1. Desenvolvimento WEB Rubens Guimarães rubens.guimaraes@e-seth.com.br
  2. 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
  3. 3. INFORMAÇÃO
  4. 4. INFORMAÇÕES EM TEMPO REAL A TECNOLOGIA APROXIMA AS PESSOAS
  5. 5. A CADA MINUTO 2 MILHÕES DE PESQUISAS SÃO REALIZADAS NO GOOGLE
  6. 6. Pessoas Informações Ideias Inteligências Culturas Opiniões Conceitos Know-how Conhecimento
  7. 7. TECNOLOGIAS NA NUVEM
  8. 8. 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
  9. 9. Estrutura para Projetos Web Linguagens Softwares Design Arquitetura Requisitos Processos Performance Segurança Navegabilidade e… Bancode dados Servidores Rede
  10. 10. DESENVOLVIMENTO RESPONSIVO
  11. 11. 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
  12. 12. IMAGENS Formatos Dimensões Manipulação e Tratamento Kb x Qualidade
  13. 13. ARQUITETURA E PROCESSAMENTO WEB Servidor Web Comportamentos do navegador Page Load, POST, Request, Sessões
  14. 14. 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.
  15. 15. SEGURANÇA
  16. 16. 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
  17. 17. 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%
  18. 18. Ataques comuns - REDES Portas Farejadores de pacotes Denial of service REDES
  19. 19. Ataques comuns - SERVIDORES Buffer overflows - execução de códigos mal- intensionados Upload de arquivos Acessos não- autorizados SERVIDORES
  20. 20. Ataques comuns - APLICATIVOS Entrada de dados em formulários SQL Injection Sequestro de sessão Farejador de tráfego para roubar informações APLICATIVOS
  21. 21. 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 %>
  22. 22. Exemplo de falha <script>document.location.replace ("http://www.paginaruim.com")</script> Ou <div style="display: none">
  23. 23. 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) %>
  24. 24. 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
  25. 25. 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" />
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. Conexões <connectionStrings> <add name="DatabaseConnection" connectionString="Data Source=(local);Initial Catalog=Northwind;Integrated Security=true;" KeyRestrictions="Encrypt=;Packet Size=;" KeyRestrictionBehavior="AllowOnly" /> </connectionStrings>
  30. 30. PERCEPÇÃO DE PRODUTOS
  31. 31. PERCEPÇÃO DE PRODUTOS
  32. 32. Rubens Guimarães rubens.guimaraes@e-seth.com.br

×