Teste de segurança - Noções básicas do protocolo HTTP
Compreender o protocolo é muito importante para se ter uma boa compreensão dos testes de segurança. Você poderá apreciar a importância do protocolo quando interceptamos os dados do pacote entre o servidor web e o cliente.
Protocolo HTTP
O protocolo de transferência de hipertexto (HTTP) é um protocolo de nível de aplicativo para sistemas de informação hipermídia distribuídos e colaborativos. Esta é a base para a comunicação de dados para a World Wide Web desde 1990. HTTP é um protocolo genérico e sem estado que pode ser usado para outros fins, bem como usando a extensão de seus métodos de solicitação, códigos de erro e cabeçalhos.
Basicamente, o HTTP é um protocolo de comunicação baseado em TCP / IP, que é usado para entregar dados como arquivos HTML, arquivos de imagem, resultados de consultas, etc., pela web. Ele fornece uma maneira padronizada para os computadores se comunicarem entre si. A especificação HTTP especifica como os dados solicitados pelos clientes são enviados ao servidor e como os servidores respondem a essas solicitações.
Recursos básicos
Seguem os três recursos básicos que tornam o HTTP um protocolo simples, mas poderoso -
HTTP is connectionless- O cliente HTTP, ou seja, o navegador inicia uma solicitação HTTP. Após fazer uma solicitação, o cliente se desconecta do servidor e aguarda uma resposta. O servidor processa a solicitação e restabelece a conexão com o cliente para enviar a resposta de volta.
HTTP is media independent- Qualquer tipo de dado pode ser enviado por HTTP, desde que o cliente e o servidor saibam como lidar com o conteúdo dos dados. Isso é necessário para o cliente e também para o servidor especificar o tipo de conteúdo usando o tipo MIME apropriado.
HTTP is stateless- HTTP é um protocolo sem conexão e isso é um resultado direto de que o HTTP é um protocolo sem estado. O servidor e o cliente estão cientes um do outro apenas durante uma solicitação atual. Depois, os dois esquecem um do outro. Devido a essa natureza do protocolo, nem o cliente nem o navegador podem reter informações entre diferentes solicitações nas páginas da web.
HTTP / 1.0 usa uma nova conexão para cada troca de solicitação / resposta, enquanto a conexão HTTP / 1.1 pode ser usada para uma ou mais trocas de solicitação / resposta.
Arquitetura
O diagrama a seguir mostra uma arquitetura muito básica de um aplicativo da web e descreve onde o HTTP reside -
O protocolo HTTP é um protocolo de solicitação / resposta baseado na arquitetura cliente / servidor em que o navegador da web, robôs e mecanismos de pesquisa, etc. atuam como clientes HTTP e o servidor da web atua como servidor.
Client - O cliente HTTP envia uma solicitação ao servidor na forma de um método de solicitação, URI e versão do protocolo, seguido por uma mensagem semelhante a MIME contendo modificadores de solicitação, informações do cliente e possível conteúdo do corpo por meio de uma conexão TCP / IP.
Server - O servidor HTTP responde com uma linha de status, incluindo a versão do protocolo da mensagem e um código de sucesso ou erro, seguido por uma mensagem semelhante a MIME contendo informações do servidor, metainformações de entidade e possível conteúdo de corpo de entidade.
HTTP - Desvantagens
HTTP não é um protocolo totalmente seguro.
HTTP usa a porta 80 como porta padrão para comunicação.
O HTTP opera na camada de aplicativo. Ele precisa criar várias conexões para transferência de dados, o que aumenta as despesas administrativas.
Nenhuma criptografia / certificados digitais são necessários para usar HTTP.
Detalhes do protocolo Http
Para entender o protocolo HTTP em profundidade, clique em cada um dos links abaixo.
HTTP Parameters
HTTP Messages
HTTP Requests
HTTP Responses
HTTP Methods
HTTP Status Codes
HTTP Header Fields
HTTP Security