Quero restringir o upload de arquivos (solicitações HTTP POST) com extensões específicas para meu servidor da Web.
Breve descrição
Quando você analisa os dados POST de uma solicitação HTTP, o conteúdo carregado pode ser de dois tipos:
- Dados do formulário
- Binário
Para restringir o upload de arquivos com extensões específicas (.pdf, .docx, .exe), você criará e configurará uma regra personalizada de lista de controle de acesso da web (ACL da web) no AWS WAF.
Observação: O AWS WAF inspeciona os primeiros 8 KB (8.192 bytes) do corpo da solicitação. Para obter mais informações sobre solicitações de corpos maiores, consulte Componentes de solicitação da web de tamanho grande em AWS WAF.
Resolução
Identifique o tipo de conteúdo que os dados POST usam
Os dados POST nas solicitações HTTP normalmente usam dados do formulário ou binários.
- Os dados do formulário incluem todos os dados que um usuário insere em uma página da internet ou formulário HTML que o HTTP envia ou publica em um servidor da internet.
- Uma carga útil binária é qualquer coisa que não seja uma carga útil de texto. Por exemplo, uma carga binária pode ser um arquivo.jpeg, um arquivo.gzip ou um arquivo.xml. Isso inclui dados binários genéricos, como de uma aplicação .pdf, imagem .jpeg ou aplicação .zip. Para todos os tipos de extensão de arquivo, consulte Media types [Tipos de mídia] no site da Internet Assigned Numbers Authority (IANA).
Para identificar seu tipo de solicitação POST, verifique o valor Content-Type no cabeçalho HTTP POST. Por exemplo:
Content-Type: multipart/form-data
Com base na saída do tipo de conteúdo, consulte a seção apropriada que corresponde ao valor do cabeçalho.
Crie uma regra para conteúdo de várias partes/dados de formulário
Conclua as etapas a seguir:
- Abra o console do AWS WAF.
- No painel de navegação, selecione AWS WAF.
- Selecione Recursos e pacotes de proteção.
- Selecione seu Pacote de proteção.
- No pacote de proteção selecionado, selecione Regras.
- Selecione Exibir e editar ao lado de Regras para visualizar ou modificar as regras associadas ao seu pacote de proteção.
- No painel direito de Gerenciar regras, selecione Adicionar regras.
- Selecione Criar nova regra.
- Selecione Regra personalizada e clique em Próximo.
- Em Tipo de regra, selecione Regra personalizada e clique em Próximo.
- Para configurar sua regra, configure os seguintes valores:
Em Ação, selecione Bloquear para regras personalizadas.
Em Nome, insira um nome para identificar essa regra.
Em Se for uma solicitação, selecione corresponde à declaração. Em seguida, preencha os seguintes campos para a Declaração:
Em Inspecionar, selecione Corpo JSON.
Para o escopo de correspondência JSON, escolha Valores.
Em Ação para solicitações de corpo JSON inválidas, selecione a opção apropriada para você.
Em Conteúdo a ser inspecionado, escolha Conteúdo JSON completo.
Em Tipo de correspondência, escolha Corresponde à expressão regular.
Em Expressão regular, insira um padrão regex que corresponda. Veja o exemplo a seguir:
(?:.pdf|.doc|.docx|.ppt)
- (Opcional) Em Transformação de texto, adicione uma transformação de texto ou mantenha esses campos como Nenhum.
- Em Tratamento de tamanho grande, escolha a opção relevante para seu caso de uso.
- Selecione Criar Regra.
- Clique em Salvar.
Crie uma regra para valor binário
Conclua as etapas a seguir:
- Abra o console do AWS WAF.
- No painel de navegação, selecione AWS WAF.
- Selecione Recursos e pacotes de proteção.
- Selecione seu Pacote de proteção.
- No pacote de proteção selecionado, selecione Regras.
- Selecione Exibir e editar ao lado de Regras para visualizar ou modificar as regras associadas ao seu pacote de proteção.
- No painel direito de Gerenciar regras, selecione Adicionar regras.
- Selecione Criar nova regra.
- Selecione Regra personalizada e clique em Próximo.
- Em Tipo de regra, selecione Regra personalizada e clique em Próximo.
- Para configurar sua regra, configure os seguintes valores:
Em Ação, selecione Bloquear para regras personalizadas.
Em Nome, insira um nome para identificar essa regra.
Em Se for uma solicitação, selecione corresponde à declaração.
Preencha os seguintes campos para a Declaração:
Em Inspecionar, escolha Cabeçalho único.
Em Nome do campo do cabeçalho, insira Content-Type.
Em Tipo de correspondência, escolha Corresponde à expressão regular.
Em Expressão regular, insira um padrão regex que corresponda.
Veja o exemplo a seguir para arquivos .pdf e .jpeg:
(?:pdf|jpeg)
- (Opcional) Em Transformação de texto, adicione uma transformação de texto ou mantenha esses campos como Nenhum.
- Selecione Criar Regra.
Observação: para restringir a regra para um caminho de URI de upload específico, use uma instrução AND dentro da regra de ACL da Web que inspeciona o caminho.