Tudo o que você sempre quis saber sobre formulários HTML seguros.

A autenticação na Web é um assunto extremamente fascinante. O cenário está mudando constantemente à medida que as tecnologias da Web progridem. Se você é um programador novo, tentar aprender a maneira mais segura de conectar um usuário ao seu site pode ser uma perspectiva assustadora, porque há muito a aprender.

Sobre o núcleo de toda autenticação baseada na Web: algo tão fundamental que muitas pessoas desconsideram: formulários HTML.

Os formulários HTML são fascinantes porque, sem eles, a autenticação na Web nunca existiria. Os formulários HTML são o primeiro componente crítico para que a autenticação aconteça: eles coletam credenciais do usuário e as transmitem para um servidor Web, onde o restante da mágica acontece.

Antes de entender completamente a autenticação da Web, primeiro você precisa entender completamente como criar e usar formulários HTML seguros.

Quais formulários fazem
O objetivo de um formulário HTML é transmitir dados para um servidor web.

O botão “Enviar” aciona uma ação de envio que informa o formulário a ser executado e é o ponto crítico no qual as credenciais digitadas nas caixas de entrada do formulário são então transmitidas (geralmente pela Internet!) Para um servidor da Web.

Este é um conceito assustador para muitos desenvolvedores pensarem: quando a maioria dos usuários digita seu email e senha em uma página da Web, essas informações são enviadas, em texto sem formatação, para um servidor da Web em outro lugar do mundo. Voltaremos a isso mais adiante neste artigo.

Agora que você tem um entendimento decente de como os formulários funcionam (eles coletam dados de um usuário e os enviam para um servidor) em um nível superficial, vamos falar sobre métodos HTTP.

Métodos HTTP

É onde as coisas começam a ficar interessantes. O protocolo HTTP que alimenta a Internet permite que você faça solicitações e receba respostas .

Quando você envia uma * solicitação *  a um site para exibir uma página, por exemplo, o site recebe sua solicitação e emite uma * resposta * que seu navegador exibirá.

O importante a saber sobre solicitações é que você pode fazer diferentes * tipos *  de solicitações. Existem dois tipos principais de solicitações que o navegador fará para um servidor da Web: solicitações GET e POST.

Quando o botão de envio de um formulário é clicado e seus dados são enviados para um servidor da Web, essa solicitação é feita usando um método HTTP. Você pode escolher que tipo de solicitação é feita quando um formulário é enviado pelo seu navegador: GET ou POST. Saber que tipo de solicitação usar em qual situação é uma preocupação importante de segurança e usabilidade.

Vamos dar uma olhada nos métodos GET e POST com mais profundidade.

Solicitações GET

A solicitação GET é de longe o tipo mais comum de solicitação HTTP. Sempre que você digita um URL no seu navegador e visita um site, está fazendo uma solicitação GET.

Uma solicitação GET informa ao servidor da Web que você deseja recuperar (GET) alguns dados. Se eu visitar twilio.com no meu navegador da web, meu navegador emitirá uma solicitação GET para os servidores da web do www.twilio.com. Esses servidores da Web carregam o conteúdo HTML do site do Twilio e o devolvem ao meu navegador. Meu navegador analisará esse HTML e o exibirá para eu ver.

Se você estiver criando um formulário que coleta as entradas do usuário para obter informações, convém usar uma solicitação GET.

Um bom exemplo de um formulário que coleta informações para obter informações seria um formulário de pesquisa. Quando você procura informações, normalmente pede para “obter” informações e, portanto, seu formulário de pesquisa deve emitir uma solicitação GET.

Por padrão, todos os formulários emitem solicitações GET quando enviadas.

Uma ressalva a ser lembrada, no entanto, é que os navegadores geralmente armazenam em cache solicitações GET. Isso significa que, se você estiver fornecendo pesquisa por informações confidenciais, talvez não queira usar uma solicitação GET, pois essas informações podem ser armazenadas em cache.

Solicitações POST

Quando você precisar enviar informações do seu navegador para um servidor Web, provavelmente desejará usar a solicitação POST.

A solicitação POST informa ao servidor da Web que você deseja enviar (POST) alguns dados. Se estou criando uma página de login (como a mostrada anteriormente) que aceita um endereço de e-mail e uma senha como entrada, gostaria de usar uma solicitação POST ao enviar meu formulário para sinalizar ao servidor da Web que estou enviando alguns dados para consumo.

Como mencionei na seção anterior, todos os formulários enviam solicitações GET por padrão. Se você quiser modificar a página de exemplo anterior para enviar o endereço de e-mail e a senha de um usuário por meio de uma solicitação POST, poderá usar o methodatributo no formelemento 

Matéria completa em :

Artigo Original: https://css-tricks.com/serious-form-security/

Veja também:

Práticas recomendadas em segurança de formulários da Web 

https://help.formassembly.com/help/best-practices-in-web-form-security