Baixe o app para aproveitar ainda mais
Prévia do material em texto
Rafael Soares Ferreira Sócio Diretor Técnico rafael@clavis.com.br Auditoria de Segurança em Aplicações Web Apresentação • Grupo Clavis • Sócio Diretor Técnico • Testes de invasão em redes, sistemas e aplicações Contatos rafaelsoaresferreira@gmail.com rafaelsoaresferreira @rafaelsferreira www.facebook.com/rafaelsoaresferreira Disclaimer O Curso de Auditoria de Segurança em Aplicações Web da Academia Clavis tem o objetivo único de capacitar profissionais para as práticas de testes e análises de segurança de redes, sistemas e aplicações por meio de ataques e invasões, real izados com consentimento do proprietário ou possuidor da rede, sistema ou aplicação. Modelo do Curso • Aulas ao vivo (on line) • Aulas gravadas para revisão • Ambientes para testes • Material complementar • Avaliação Agenda • Introdução • Principais Ameaças • Testes de Segurança • Ferramentas • Estudos de Casos Introdução Parte 1 - Introdução • Utilização • Benefícios • Arquitetura • Protocolos e Tecnologias • Segurança básica • Compras • Redes Sociais • Internet Banking • Webmail • Outras... Utilização • Protocolo leve e simples • E “stateless”! • Anytime, Anywhere • Independe de plataforma • Atualizações centralizadas Benefícios Arquitetura Arquitetura • O protocolo HTTP HTTP 1.0 - RFC-1945 HTTP 1.1 – RFC-2616 RFC 1945: ...is an application-level protocol with the lightness and speed necessary for distributed, collaborative, hypermedia information systems. It is a generic, stateless, object- oriented protocol which can be used for many tasks, such as name servers and distributed object management systems, through extension of its request methods (commands)... Protocolos e Tecnologias • “Lightness” • Protocolo em texto puro • Simples de implementar um cliente • “Stateless” • Servidor responde a requisição e • Encerra a conexão Protocolos e Tecnologias Cookies • Gestão de Sessão • Faz o servidor “lembrar” do cliente • Preferências do usuário • Possível Capturar / Manipular / Forjar! Protocolos e Tecnologias Como funciona Protocolos e Tecnologias 1) URL digitada no browser 2) Separa-se o que é host e o que é path • Pergunta ao DNS o IP do host • O servidor DNS retorna o IP do host Protocolos e Tecnologias Como REALMENTE funciona 3) O browser envia a requisição ao IP • Se nenhuma porta foi dada, é usada a 80 • O Path é usado para determinar qual arquivo enviar • O servidor responde à requisição Protocolos e Tecnologias Como REALMENTE funciona 4) O browser lê o arquivo HTML e todos os arquivos referenciados (que podem ser imagens, JavaScript, CSS, etc) OBS: Tais arquivos podem estar em outros hosts 5) O browser monta as peças e exibe ao usuário Protocolos e Tecnologias Como REALMENTE funciona Métodos HTTP 1.0 • GET – requisições • POST – submissões • HEAD – igual ao GET mas sem o body Protocolos e Tecnologias HTTP 1.1 adicionou mais alguns • PUT – para uploads • DELETE – remoção de arquivos • OPTIONS – listagem de métodos • TRACE – retorna a requisição • CONNECT – Tunelamento via proxies Protocolos e Tecnologias Códigos de Status: 1XX – Informacional 2XX – Sucesso 3XX – Redirecionamentos 4XX – Erros client-side 5XX – Erros server-side Protocolos e Tecnologias O básico: HTML, CSS, Javascript Outras tecnologias: XML, AJAX, RSS, WAP Protocolos e Tecnologias • Não confiar em dados externos • Tudo pode ser forjado/modificado • Validar todos os dados • Prever e Tratar erros • Testar segurança, revisar Segurança Básica Mudança de Paradigma • What is a secure site? “a site that uses the HTTPS protocol...” • Segurança da comunicação é apenas 1 dos problemas Segurança Básica Erros Comuns • Falta de Canonicalização • Verificações Client-Side • Segurança por Obscuridade Segurança Básica Canonicalização • Decisões baseadas em nomes • Representação de forma única • Muitas representações para caracteres • ASCII, hexadecimal, UTF-8, unicode ... Segurança Básica Canonicalização – Exemplo • SecureIIS do eEye http://www.exemplo.com/ver.asp?arquivo=../../../winnt/repair/sam • Evasão http://www.exemplo.com/ver.asp?arquivo=%2e%2e/%2e%2e/%2e %2e/winnt/repair/sam Segurança Básica Verificações Client-Side • Facilmente contornadas • Desabilitar javascript • Usar um proxy • Plugins de browser Segurança Básica Verificações Client-Side • Tamper data Segurança Básica Segurança por Obscuridade • Esconder o problema não resolve • Pode ser usada como camada adicional • Nunca como SOLUÇÃO de segurança Segurança Básica Segurança por Obscuridade • Trocando a string do Apache ServerSignature Off SecServerSignature “Meu Servidor“ Segurança Básica Principais Ameaças Parte 02 - Principais Ameaças • Injeções • Quebra de Autenticação / Sessão • Cross-Site Scripting (XSS) • Referência direta à objetos • Falhas de Configuração Principais Ameaças Parte 02 - Principais Ameaças • Exposição de Dados Sensíveis • Falhas de Controle de Acesso • Cross Site Request Forgery (CSRF) • Uso de Componentes Vulneráveis • Redirecionamentos Não-Validados • OWASP Top10 • Principais Ameaças a Aplicações Web • Consenso entre profissionais da área • Edições Trienais Principais Ameaças Principais Ameaças Principais Ameaças Injeções Descrição • Envio de dados não tratados para algum serviço interno. • Pode ser feita via SQL, LDAP, Xpath, comandos de sistema operacional, argumentos de programas, etc. • Descoberta por varreduras e/ou fuzzers SQL Injection Exemplo SQLi: • Aplicação: OcoMon • Versão: 2.0-RC6 • Bypass de autenticação via SQLi • Validação de entradas feita client-side Exemplo • Página inicial filtrando caracteres especiais através de javascript. Exemplo • É possível editar a função de validação, ou impedi-la de ser executada no navegador. Exemplo • Sem a função de validação é possível submeter a string admin ‘ or ‘ -- que possibilita acesso ao sistema. Impactos • Dependendo do tipo de injeção os danos causados podem ser: ü Perda ou corrupção de dados ü Negação de Serviço ü Falhas de autenticação ü Execução arbitrária de código e até comprometimento total do sistema. Como se Prevenir • Não utilizar dados não confiáveis em comandos e/ou queries. • Rotinas de validação ou “escape” de caracteres. • É aconselhável o uso de validação positiva nas entradas. • Utilizar canonicalização de dados. Quebra de Autenticação / Sessão Principais Ameaças • Restrição de conteúdos / recursos • Autenticação HTTP: Basic -> credenciais concatenadas separadas por “:” e codificadas em base64 Digest -> hash MD5 Definição • Identificadores de Sessão (“SESSION ID") expostos • Lembretes de Senha ou “logout” vulneráveis Definição Exemplo Cookie: [...] Authorization: Basic dGVzdGU6ZHVtbXlwYXNzd29yZA== [...] Decodificando: $ echo "dGVzdGU6ZHVtbXlwYXNzd29yZA==" | base64 –d teste:dummypassword Exemplo • Tunelamento por SSL • Políticas de segurança • CAPTCHA • Proteger Cookie Como se Prevenir Principais Ameaças XSS – Cross SiteScripting Descrição • Ocorre quando uma aplicação inclui dados não tratados em um objeto enviado ao navegador. • Existem 3 principais tipos: ü Stored ü Reflected ü DOM based XSS Impactos • Roubo de informações de sessão • Pichação de Sites • Redirecionamento de usuários e etc. • Exposição de informações dos usuários Descrição Stored: • Código injetado é armazenado permanentemente na aplicação vulnerável (comentários, posts, logs, etc) • A vítima recebe o código malicioso junto com alguma requisição feita. Stored XSS Exemplo Stored: • Aplicação: dotProject • Versão: 2.1.5 • Múltiplas Vulnerabilidades de XSS e SQLi Exemplo • Na submissão de arquivos é possível inserir um código malicioso no campo descrição. Exemplo <script>alert('xss')</script> Exemplo • O código então será submetido a todos que visualizarem a descrição de tal arquivo. Descrição Reflected: • O código é “refletido” para o usuário através de respostas que contenham dados não tratados recebidos pela aplicação (resultado de buscas, mensagens de erro, etc). • Geralmente disseminado através de links maliciosos. Reflected XSS Exemplo Reflected: • Acunetix test site: http://testasp.vulnweb.com/search.asp • Aplicação com exemplos de vulnerabilidades Exemplo Reflected: • O código submetido na busca é retornado ao usuário na página de resultado sem nenhum tratamento. Exemplo Reflected: • No caso de submissão de um código html por exemplo, o mesmo será exibido para o usuário como se pertencesse a página em questão. Exemplo Reflected: • A submissão pode ser feita pels busca: <br><br>Entre aqui com suas credenciais:<form action="destination.asp"><table><tr><td>Nome:</td><td><input type=text length=20 name=nome></td></tr><tr><td>Senha:</td><td><input type=text length=20 name=senha></td></tr></table><input type=submit value=Acessar></form>! • Ou pela URL: http://testasp.vulnweb.com/search.asp?tfSearch=%3Cbr%3E%3Cbr%3EEntre +aqui+com+suas+credenciais%3A%3Cform+action%3D%22destination.asp%22%3E %3Ctable%3E%3Ctr%3E%3Ctd%3ENome%3A%3C%2Ftd%3E%3Ctd%3E%3Cinput+type %3Dtext+length%3D20+name%3Dnome%3E%3C%2Ftd%3E%3C%2Ftr%3E%3Ctr%3E%3Ctd %3ESenha%3A%3C%2Ftd%3E%3Ctd%3E%3Cinput+type%3Dtext+length%3D20+name %3Dsenha%3E%3C%2Ftd%3E%3C%2Ftr%3E%3C%2Ftable%3E%3Cinput+type%3Dsubmit +value%3DAcessar%3E%3C%2Fform%3E+! Descrição DOM based XSS: • Ocasionado por uma modificação no ambiente DOM do navegador da vítima. • O código executado é legítimo, porém devido a essa alteração no ambiente sua execução é feita de maneira anômala. Exemplo DOM based XSS: • O seguinte código é executado no navegador (client-side) Exemplo DOM based XSS: • A variável “name” pode ser manipulada conforme o exemplo a seguir: Como se Prevenir • “Escapar” caracteres vindo de fontes não confiáveis e que serão utilizados no contexto do navegador (body, atributos, JavaScript, CSS, URL). • A validação positiva é sempre interessante mas é preciso atentar para peculiaridades da aplicação em questão pois caracteres especiais e codificações diversas podem fazer parte da rotina da aplicação. Referência Direta a Objetos Principais Ameaças • Apenas proteção na camada de apresentação não funciona • Atacante simplesmente altera parâmetros e consegue acessar o conteúdo Definição Exemplo Como prevenir • Trocar referências diretas por um valor de mapeamento aleatório temporário • Verificar se o parâmetro está dentro do padrão • Verificar se o usuário tem permissão de acesso • Verificar se o usuário pode executar a ação que deseja em um determinado objeto Falhas de Configuração Principais Ameaças • Aplicações rodam em cima de serviços que rodam em cima de SOs • Todos podem ser vetores de ataque • Exploits (e patchs!) se aplicam à qualquer tipo de software Definição • “Hardening” de servidores • Patchs e atualizações • Homologação de mudanças • Vulnerability Management Como se Prevenir Exposição de dados sensíveis Principais Ameaças Descrição • Falha mais comum e grave: simplesmente não criptografar dados sensíveis • Falhas quando a criptografia é empregada: - Geração e armazenamento inseguros de chaves - Não implantar políticas de rotação de chaves - Utilizar algoritmos de criptografia fracos - Utilizar métodos de criptografia em uma só via (hash) fracos ou sem salto para proteger senhas. Descrição • Falha em proteger o tráfego de rede onde passam os dados da aplicação • Utilização de criptografia somente na autenticação (expondo dados e IDs de seção) • Utilização de certificados expirados ou mal configurados • Falhas básicas de fácil detecção, bastando observar o tráfego de rede do site. • Frequentemente comprometem todos os dados protegidos por criptografia • Tipicamente, estes dados incluem, mas não estão limitados à: - Credenciais de acesso - Dados pessoais - Registros de saúde - Cartões de crédito, etc. Impacto • Algoritmos de criptografia e chaves utilizados devem ser apropriadamente fortes. • Senhas devem armazenadas em hash com um algoritmo de criptografia em uma só via, forte e com um salto apropriado. • Proteger o transporte de dados adequadamente pode afetar o projeto do site. Em geral, é mais simples forçar o uso de criptografia em todo o site. Como se Prevenir Falha no controle de acesso Principais Ameaças Falha no controle de acesso • Usuário autorizado modifica um parâmetro ou URL e acessa uma função privilegiada • Usuário anônimo acessa funções desprotegidas • Impacto • Acesso a contas e dados de outros usuários • Realizar ações de privilégio maior do que devido Falha no controle de acesso a nível de função Como prevenir • Restringir acesso a usuários autenticados • Mostrar somente o que for designado ao usuário ou ao grupo • Negar qualquer requisição a páginas não autorizadas • Não utilizar abordagens de análise automatizada • Deve-se negar todo o conteúdo (DENY ALL) Cross Site Request Forgery Principais Ameaças • Browsers enviam alguns tipos de credenciais automaticamente - Cookies - Cabeçalhos - Endereço IP - Certificados SSL Definição • A vítima acessa um site malicioso enquanto está logada no sistema vulnerável • O atacante força a vítima a fazer tal requisição Impacto Cross Site Request Forgery(CSRF) • Autenticações forçadas em requisições sensíveis • Controle exposição de dados utilizados como credenciais • Adicionar um token secreto, não automático, para todas requisições importantes Como se Prevenir Utilização de componentes vulneráveis Principais Ameaças Utilização de componentes vulneráveis • Componentes bibliotecas e frameworks • Demora na divulgação da vulnerabilidade • Muitos produtores não lançam uma correção (hot fix) • Monitorar versões de todos os componentes, incluindo todas dependências • Manter componentes sempre atualizados • Organizar uma política de segurança • Buscar uma alternativa enquanto uma correção não aparece Como se Prevenir Redirecionamentos e repasses não validados Principais Ameaças Descrição • Falha em validar o destino de redirecionamentos ou repasses utilizados • Problemas mais comuns: - Ausência de validação do destinode um redirecionamento ou repasse - Similaridade entre redirecionamento para destinos internos (da própria aplicação) e externos l Redirecionamentos podem induzir usuários a instalar malware ou revelar informações sensíveis. l Repasses inseguros podem permitir contornar controles de acesso. Impacto l Evitar estas falhas é extremamente importante, pois elas são os alvos favoritos de phishers tentando ganhar a confiança de um usuário. l Recomendações básicas para utilizar redirecionamentos e repasses: - Não envolver parâmetros de usuário para calcular o destino - Se não puder ser evitar, validar o parâmetro e verificar autorização do usuário Como se Prevenir Testes de Segurança Parte 03 - Testes de Segurança • Exposição de Informação • Configurações e Manutenção • Autenticação • Gerenciamento de Sessões • Autorização Testes de Segurança Parte 03 - Testes de Segurança • Funcionalidades e Lógica • Validação de Dados • Disponibilidade • Web Services • AJAX • Visa obter o máximo de informação possível sobre o alvo • Ações “passivas” mesmo que interagindo com a aplicação • Fontes externas e internas Exposição de Informação Spiders, Robots, e Crawlers • Robots.txt • Restrição para indexadores web • Restrição não obrigatória • Pode expor detalhes sobre a aplicação Exposição de Informação Spiders, Robots, e Crawlers Exemplo: User-agent: * Allow: /arquivo/inofensivo Disallow: /arquivo/ultra/secreto Exposição de Informação Sites de Busca • Provavelmente o alvo já foi indexado • Operadores para restrição de buscas: site: intitle: filetype: Exposição de Informação Sites de Busca • Google Hacking Google Hacking Data Base Google Hacking for Pentesters http://johnny.ihackstuff.com/ghdb/ Exposição de Informação • Mapeamento superficial • Potenciais vetores de ataque • Caminho de menor resistência • Dados recebidos do usuário Identificação de pontos de entrada • Variáveis em Cookies • Campos ocultos • Códigos de Status não comuns (300's, 400's, 500) Identificação de pontos de entrada • Métodos GET e HTTP POST • Utilizar um proxy • requisições • headers • parâmetros • Colocar resultados em uma planilha Identificação de pontos de entrada Identificação de pontos de entrada • HTTP GET: GET https://www.banco.com.br/transferencia.jsp? CONTA=123&QUANTIA=1000&PARA=124 Host: www.banco.com.br Cookie: SESSIONID=csavSADSascklNOnmsslkGhya Conta, Quantia, Para e SessionID são relevantes neste request. • HTTP POST: POST https://www.banco.com.br Host: www.banco.com.br Cookie: SESSIONID=bggbfgbfgCNJasnsnJCKoAsybucAO ==CustomCookie=00meu00ip00verdadeiro00192.1 68.0.100user=Root&password=Segredo!&IP=true user, password, IP, Cookie e CustomCookie são relevantes neste request Identificação de pontos de entrada • Determina quais tecnologias estão sendo utilizadas • Informações providas explicitamente pelo servidor • Análise comportamental Fingerprinting • Detecção de serviços e aplicações • Vetores alternativos de ataque • Proporcionam posição privilegiada • Depende do escopo do teste Discovery • Tratadas ou não • Geralmente servem para debugging • Mensagens em HTML ou ASP.Net carregam bastante informação em comentários Mensagens de Erro Principais testes: • HTTP 404 • Listagem de diretório Mensagens de Erro • Servidores e infraestrutura • Fora do escopo do programador • Conformidade com boas práticas de administração segura de servidores • Total acesso à aplicação Configurações e Manutenção • Proteção do canal de comunicação • Força das cifras utilizadas para o tunelamento • Cifras clássicas foram comprometidas SSL/TLS • Legislação de alguns países limitam a força das cifras • O túnel é negociado entre as partes • O cliente pode oferecer apenas cifras fracas e forçar o servidor a estabelecer um túnel vulnerável SSL/TLS • Oracle: TNS listener • Serviço para conexão remota no banco • TNS = Transparent Network Substrate • Default port 1521 (2483 & 2484 also) DB Listener • DoS no serviço de listener • Hijack do banco através de comprometimento da senha de acesso • Vazamento de informações sobre o DB DB Listener • Controles e mecanismos de segurança - WAF (Web Application Firewall) - Load Balancer - Proxy - Servidor de Aplicação - Interface administrativa Configurações da Infraestrutura • Arquivos de exemplo e samples Ex: IIS - CodeBrws.asp • Comentários em códigos client-side • Diretórios padrão Configuração da Aplicação • Geralmente verificações automáticas - Nikto - Nessus - Qualys Configuração da Aplicação • Define quem e como os recursos serão tratados • Ação para extensões desconhecidas • Geralmente essa ação é o envio do arquivo para o cliente Extensões de Arquivo • Falha de configuração pode possibilitar downloads arbitrários • Ex: .asa, .inc, .java, .cs, .swp • Scanners automatizados costumam fazer este tipo de teste Extensões de Arquivo • Todo arquivo contido no diretório raiz do servidor web é servido aos clientes • Backups, arquivos de Log, relatórios, arquivos temporários... • .old, ~, bak, txt, src, dev, old, inc, orig, copy, tmp Arquivos não referenciados • NUNCA : x .asa x .inc x .java x .bak, .old e outras extensões que indiquem backup Extensões de Arquivo • Checar: ü .zip, .tar, .gz, .tgz, .rar, ... ü .txt ü .pdf ü .doc, .rtf, .xls, .ppt, ... Extensões de Arquivo • Geralmente protegido por obscuridade • Métodos de identificação: - Enumeração de arquivos e diretórios - Código fonte e robots.txt - Documentação - Parâmetros Interfaces Administrativas • PUT • DELETE • CONNECT • TRACE Métodos HTTP e XST • Verifica a identidade do usuário • Geralmente através de login/senha • Análise do modelo • Identificação de pontos de falha: - Escalada - Bypass - Impersonation Autenticação Autenticação Transporte de Credenciais • Interceptação • Vai além da força da cifra • Atributos de ação em formulários • Método utilizado Autenticação Transporte de Credenciais • Existe SSL? É obrigatório? Sempre? • Envio “transparente” de credenciais - AJAX - JavaScript Autenticação Listagem de usuários • Identificação de usuários válidos • Análise de login válido - Status code retornado - Indicadores de sucesso - Alterações em cookies Autenticação Listagem de usuários • Análise de falha no login - Senha incorreta - Login inexistente • Como a aplicação reage a cada caso • Verificação de URLs e Redirects Autenticação Senhas Previsíveis • Contas: - Default - Teste - Demo • Informações obtidas em etapas anteriores Autenticação Força Bruta • Autenticação via HTTP ou Form • Ataque dicionário • Ataque Combinatória • Ataque incremental Autenticação Testes de “bypass” • Requisições direta • Session ID Prediction • Alteração do workflow esperado • SQL Injection • Manipulação de Parâmetros Autenticação Lembrete/Reset de senhas • Envio para email cadastrado - Senha atual - Nova senha (a ser trocada no 1º login) - Senha temporária• Pergunta Secreta - Perguntas Pré--definidas - Dicas cadastradas pelo usuário Autenticação Logout e cache de Browser • Evento de logout nem sempre é explícito • Time out, Cache do Browser • Reutilização de sessões • Fim da sessão / Inutilização do Cookie Autenticação CAPTCHA • Completely Automated Public Turning test to tell Computers and Humans Apart • Visa Controlar ataques automatizados Autenticação CAPTCHA • Previsibilidade / Limitação de possibilidades • Codificação Fraca ou inexistente • Reutilização Autenticação Autenticação de Multifator • “O que você sabe” • “O que você tem” • “O que você é” Autenticação Autenticação de Multifator • Roubo de Credenciais • Credenciais Fracas • Engenharia Social (Phishing, Trojan) Autenticação Autenticação de Multifator • One-time password • Grid Card • Token/SmartCard • Envio de senha por meios alternativos Gerenciamento de Sessões Cookies • Cookies - RFC 2965 • Enviado pelo cliente a cada requisição • Facilmente manipuláveis • Tratamento de parâmetros e valores Gerenciamento de Sessões Cookies • Atributo Secure • Canais criptografados • Persistência e Validade • Controle de Cache Gerenciamento de Sessões Cookies • Principais atributos: - secure – força HTTPS - HttpOnly – protege contra JavaScript - domain – controla a origem do cookie - path – locais onde o cookie é válido - expires – Validade • Primeira Autenticação User = Exemplo; password = 123456 Cookie=TSFoweC3821 • Segunda Autenticação User = Exemplo; password = 123456 Cookie=TSFoweC3823 • Terceira Autenticação User = Exemplo; password = 123456 Cookie=TSFoweC3825 Cookie provável: Cookie=TSFoweC3827 Gerenciamento de Sessões Gerenciamento de Sessões CSRF - Cross Site Request Forgery • Utiliza sessões já autenticadas • Funciona principalmente quando requisições GET podem modificar dados • Método Post dificulta a execução Gerenciamento de Sessões CSRF - Cross Site Request Forgery • Links forjados acessados por usuários autenticados • Gestão e tokens por requisição • OWASP CSRFGuard Autorização Path Traversal • Referência a arquivos - Parâmetros - Cookies - Variáveis • Caminhos relativos - ../../../../../../../../../../../../etc/passwd Autorização Bypass • Requisições pós-autenticação • Diferentes usuários • Diferentes privilégios • Recursos e dados Autorização Escalada de Privilégio • Vertical: - Usuário com maior nível de privilégios - User -> Admin - Editor -> Publisher • Horizontal - Outro usuário de mesmo nível Autorização Escalada de Privilégio • Site maps em diferentes níveis • Parâmetros que indiquem grupos • Valores contidos em cookies e JavaScript Funcionalidades e Lógica • Testes “não técnicos” • Requer criatividade e pensamento lateral • Exemplos: - Pulando passos - Quantidades negativas - Requisições simultâneas Validação de Dados XSS Não Persistente • Exposição de parâmetros • Teste caracteres que deveriam estar filtrados: '';!--"<>=&{()} • Parâmetros sem tratamento Validação de Dados XSS Persistente • Perfis • Comentários • Posts • Rich Format Validação de Dados SQL Injection • Campos de Busca • Formulários • Teste de parâmetros: 1' or '1' = '1 ' or 1=1-- ') or ('1'='1-- Disponibilidade • SQL Wildcard • Trancamento de Contas • Buffer Overflow • Loops • Limitação de Uploads Web Services • WSDL - Web Services Description Language • Códigos XML • Anexos SOAP AJAX • Local Proxy • Firefox Addons (FireBug) • Requisições parciais • Interceptação de XMLHttpRequest (XHR) Dúvidas? Perguntas? Críticas? Sugestões? Siga a Clavis Rafael Soares Ferreira Sócio Diretor Técnico Muito Obrigado! rafael@clavis.com.br @rafaelsferreira
Compartilhar