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
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
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
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