Segurança

Métodos POST e GET

Suas credenciais estão seguras?

Publicado

em

Você sabe onde insere suas informações?

Primeiramente vamos entender como funciona o HTTP

O HTTP é o protocolo responsável pelas requisições de páginas na WEB.

Vez por outra acessamos alguns sites que rodam o HTTP por trás de suas requisições, e esse protocolo possui alguns métodos , ou como também são chamados “Verbos” .

Os métodos (ou “Verbos”) no http definem como tal ação deve se realizada e em alguns casos dependendo do verbo o servidor poderá dar uma resposta diferente para o usuário.

Quando acessamos algum site é quase que rotineiro passarmos por uma tela com de Login, em formulários como esse inserimos nossas credenciais para termos acesso ao sistema.

Tais informações devem ser sigilosas e “invisiveis” a qualquer outra pessoa, tudo deve acontecer entre você e o servidor web.

Porém algo que pode facilmente acontecer se encontra nessa imagem abaixo , algo que aconteceu comigo mesmo:

As minhas credenciais de acesso ficaram tudo no corpo da minha URL , algo que não é nem um pouco seguro , concorda?

Essas informações na URL ficam expostas, não estou apenas me referindo se caso alguém esteja perto de você e veja as “olho” o que você digitou. Me refiro ao fato de quando essas informações trafegam na internet. O que é considerado como uma vulnerabilidade na segurança.

Quem define o local onde os parâmetros são passados são o HTTP.

Os “verbos”

Um desses verbos mais comuns são o “GET”, quando utilizamos o GET os dados (parâmetros) inseridos no formulário são passados no cabeçalho da requisição.

Por essa razão, podem ser vistos pela URL , como pode ocorrer nos formulários de login.

Esse método é padrão para enviar dados quando submetemos um formulário HTTP.

Por isso no exemplo acima, foi utilizado o GET. Contudo, conseguimos alterar esse comportamento dizendo para o formulário qual do método (method) ele deve usar.

No caso de formulários web, é muito comum que esse método seja o POST:

<!DOCTYPE html>
<html>
<form method="post" action="logar">
<input type="text" name="nome" placeholder="digite seu Nome aqui">
<input type="e-mail" name="email" placeholder="Digite seu e-mail">
<input type="submit" name="enviar" value="Enviar">
</html>    
</form>


O parâmetro (ou “Verbo”)  POST, ao contrário do GET, envia os parâmetros no corpo da requisição HTTP. Escondendo eles da URI:

Mas com isso , você talvez se pergunte ” Significa então que se eu utilizar o POST eu vou 100% proteger meus dados atribuídos ao formulário , já que eles não aparecem mais na URL?

Não é bem assim, na verdade eles ainda não estão seguros!

A única coisa que o POST faz é enviar os parâmetros no corpo da requisição. Se inspecionarmos a requisição, ou usarmos algum tipo de sniffer de rede como o Wireshark , conseguiremos facilmente vêr os dados inseridos nos campos do formulário que utiliza esse método.

Então caso não queira que seus dados sejam vistos , procure utilizar a versão segura do HTTP o “HTTPS” .

Com essa versão conseguimos criptografar os dados que serão enviados.

Ambos os verbos são muito utilizado em formulários de sites na internet e possuem algumas outras diferenças entre si.

Como o GET envia os dados no cabeçalho da requisição, ele tende a ser, não é uma regra,um pouco mais performático que o POST.

Porém, por enviar os dados no cabeçalho da requisição, o GET tem um tamanho máximo de dados que podem ser enviados, que no geral é de 255 caracteres.

Com POST, podemos enviar informações um pouco maiores, como imagens. Ou seja, se tentarmos passar uma grande quantidade de informações via GET, algumas partes podem ser perdidas no caminho.

Mas não conclua que utilizar o POST é o melhor caminho já que ele encapsula os dados no corpo da requisição e consegue transportar mais dados que o GET, portanto, utilizaríamos o POST em todo lugar.

Porém, se existem dois verbos diferentes, não concorda que é porque eles foram feitos para serem utilizados em locais diferentes?

As requisições do tipo GET são recomendadas para obter dados de um determinado recurso. Como em um formulário de busca ou em uma listagem de todos os produtos cadastrados.

Já as requisições POST são mais utilizadas para para enviar informações para serem processadas, como por exemplo, criar algum recurso, como um produto, ou um cliente.

EM ALTA

Sair da versão mobile