Logo da CarameloSec - Plataforma de análise de segurança automatizada

CSP Form-Action Value

Checker ID: #9

v2.0.0-alpha

CSP Form-Action Value

Descrição

Define para onde os formulários do seu site (login, contato, newsletter) podem enviar dados quando o usuário clica em “Enviar”.

Importância

Evita que um atacante altere seu formulário para roubar senhas enviando-as para um site malicioso. Reconhecemos que sites modernos usam ferramentas externas (como Mailchimp ou Stripe), por isso permitimos o envio para parceiros confiáveis.

Requisitos de Sucesso
  • • O parâmetro form-action deve estar presente.

  • • Valores aceitos: 'none' (o envio de dados diretamente via formulário é proibido), 'self' (envia apenas apenas para o próprio site) ou uma lista explícita de URLs/domínios confiáveis (ex.: 'self' https://api.stripe.com).

  • • O valor * (qualquer destino) é proibido.

  • • Obs.: o form-action não herda do default-src — ele precisa ser declarado explicitamente no CSP.

Cenários de Teste
Cenário Aprovado: Apenas o próprio site:
HTTP/1.1 200 OK
Content-Security-Policy: form-action 'self';
Content-Type: text/html; charset=UTF-8
Cenário Aprovado: Próprio site + Parceiro confiável (ex.: gateway de pagamento):
HTTP/1.1 200 OK
Content-Security-Policy: form-action 'self' https://api.stripe.com;
Content-Type: text/html; charset=UTF-8
Cenário Aprovado: Os formulários do site não podem enviar dados diretamente:
HTTP/1.1 200 OK
Content-Security-Policy: form-action 'none';
Content-Type: text/html; charset=UTF-8
Cenário Reprovado: Qualquer lugar (Perigoso — formulários podem enviar dados para o servidor do atacante):
HTTP/1.1 200 OK
Content-Security-Policy: form-action *;
Content-Type: text/html; charset=UTF-8
Cenário Reprovado: O parâmetro form-action está ausente — por não herdar do default-src, a ausência significa que não há restrição de destino para os formulários:
HTTP/1.1 200 OK
Content-Security-Policy: default-src 'none';
Content-Type: text/html; charset=UTF-8
v1.0.0-alpha

CSP Form-Action Value

Descrição

O “segurança da balada” (Content Security Policy – CSP) não controla apenas quem entra, mas também para onde cada pessoa pode ir depois que já está dentro. Da mesma forma, a CSP Form-Action define para quais destinos os formulários do site estão autorizados a enviar dados, impedindo que informações sejam exfiltradas para domínios maliciosos.

Importância

Imagine que o usuário preenche um formulário e clica em “Enviar”. Um atacante poderia alterar o formulário para enviar esses dados para o site dele. Essa regra garante que o botão “Enviar” só mande dados para lugares que você confia.

Requisitos de Sucesso
  • • O cabeçalho Content-Security-Policy deve conter o parâmetro form-action com o valor igual a 'self' ou 'none', ou seja, só enviam para o próprio site ou não enviam para lugar nenhum.

  • • Obs.: o form-action não herda do default-src — ele precisa ser declarado explicitamente no CSP.

Cenários de Teste
Cenário Aprovado: O parâmetro form-action contém o valor 'self' (formulários só podem enviar dados para o próprio site):
Content-Security-Policy: form-action 'self';
Cenário Aprovado: O parâmetro form-action contém o valor 'none' (formulários não podem enviar dados para nenhum destino):
Content-Security-Policy: form-action 'none';
Cenário Reprovado: O parâmetro form-action contém o valor * (formulários podem enviar dados para qualquer destino — abre brecha para roubo de dados):
Content-Security-Policy: form-action *;
Cenário Reprovado: O parâmetro form-action está ausente — por não herdar do default-src, a ausência significa que não há restrição de destino para os formulários:
Content-Security-Policy: default-src 'none';