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