caramelosec. SCAN

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.

  • • Ele deve ser 'self' (envia para o próprio site) OU uma lista específica de domínios confiáveis (whitelist).

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

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:
HTTP/1.1 200 OK
Content-Security-Policy: form-action 'self' https://api.stripe.com;
Content-Type: text/html; charset=UTF-8
Cenário Reprovado: Qualquer lugar (Perigoso):
HTTP/1.1 200 OK
Content-Security-Policy: form-action *;
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 seja, só enviam para o próprio site.

Cenários de Teste
Cenário Aprovado: O parâmetro form-action contém o valor 'self':
Content-Security-Policy: form-action 'self';
Cenário Reprovado: O parâmetro form-action contém o valor *:
Content-Security-Policy: form-action *;