O documento discute estratégias de design, programação e segurança para desenvolvimento de sites e aplicações web. Ele fornece diretrizes sobre arquitetura da web, frameworks, bancos de dados, responsividade, segurança de dados e prevenção de ataques cibernéticos. O documento também descreve a experiência do palestrante com projetos web complexos para grandes empresas.
Workshop Web - Do Pensamento ao Desenvolvimento - Design, Programação e Banco de Dados
1. Do Pensamento ao Desenvolvimento
Design, Programação e Banco de Dados
Workshop WEB
Rubens Guimarães
Apoio:
2. A mais completa linha de Cabos, Conectores e Acessórios para Dados, Conectividade e Imagem
www.nanoaccess.com.br
3. Rubens Guimarães
Diretor de Tecnologia da eSeth
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 e Engenharia Avançada.
4. 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. Professor do SENAC.
Palestrante do Suporte Acadêmico Microsoft. Faz parte do Conselho da Locaweb.
Profissional 5 Estrelas Microsoft. Beta Tester oficial Microsoft, participa de debates e mesas redondas
em Universidades em todo o país.
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.
5. PROJETOS EM TODOS OS ESTADOS DO BRASIL E OUTROS PAÍSES
MAIS DE 1 MILHÃO DE USUÁRIOS
MAIS DE 1000 PROJETOS DESENVOLVIDOS
15 ANOS DE MERCADO
ATENDIMENTO A GRANDES MARCAS PRESENTES NO MERCADO GLOBAL
TREINAMENTOS E PALESTRAS COM MAIS DE 1 MILHÃO DE PARTICIPANTES
18. 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
19.
20. Estrutura para Projetos Web
Linguagens
Softwares
Design
Arquitetura
Requisitos
Processos
Performance
Segurança
Navegabilidade e…
Bancode
dados
Servidores
Rede
21. EXPERIÊNCIA É DESPERTAR SENSAÇÕES.
MARCAR…
Site com foco em interatividade. O site deve conversar com o usuário, evidenciar
diferenciais e serviços. Deve despertar interesse. O cliente deve assimilar
segurança, qualidade, tecnologia e conhecimento.
Desejar qualidade de vida, bem estar, qualidade técnica e suporte profissional.
Deve perceber os diferenciais em todos os momentos da navegação.
Performance | Prazer | Energia | Bem estar | Saúde | Estilo
29. 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.
31. 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
32. 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%
33. Ataques comuns - REDES
Portas
Farejadores
de pacotes
Denial of
service
REDES
34. Ataques comuns - SERVIDORES
Buffer overflows
- execução de
códigos mal-
intensionados
Upload de
arquivos
Acessos não-
autorizados
SERVIDORES
35. Ataques comuns - APLICATIVOS
Entrada de dados
em formulários
SQL Injection
Sequestro de
sessão
Farejador de
tráfego para roubar
informações
APLICATIVOS
36. 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
%>
38. 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)
%>
39. 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
40. 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" />
41. 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
42. 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
43. 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