POST multipart/form-data retorna 403 Forbidden (OpenResty)

Website URL

https://desperdiciozero.rf.gd

Error Message

erro 403 Forbidden

Other Information

Olá, equipe de suporte da InfinityFree!

Estou enfrentando um problema no meu site hospedado na InfinityFree.

Site: https://desperdiciozero.rf.gd

Minha aplicação PHP utiliza multipart/form-data para enviar registros de auditoria e imagens. Alguns envios funcionam normalmente, enquanto outros retornam o erro 403 Forbidden, com uma página HTML identificada como openresty.

Realizei alguns testes utilizando um arquivo PHP simples de diagnóstico (/api/diagnostico_post.php), que apenas retorna informações sobre a requisição em formato JSON, sem acessar o banco de dados ou realizar upload de arquivos.

Os resultados foram os seguintes:

  • Requisição POST com Content-Type: application/json: HTTP 200 OK.
  • Requisição POST com Content-Type: application/x-www-form-urlencoded: HTTP 200 OK.
  • Requisição POST utilizando FormData (multipart/form-data), contendo apenas um campo de texto simples, sem arquivos: HTTP 403 Forbidden, com uma página HTML de erro do OpenResty.

O problema foi reproduzido em diferentes aparelhos e continua ocorrendo mesmo após a troca da conexão Wi-Fi pelos dados móveis.

Como as requisições POST nos formatos JSON e URL-encoded funcionam, mas as requisições multipart recebem erro 403, gostaria de saber se existe alguma regra de segurança, firewall de aplicação (WAF) ou configuração do servidor que esteja bloqueando esse tipo de requisição na minha hospedagem.

Esse formato é necessário para o funcionamento do envio de imagens pela minha aplicação.

Poderiam, por gentileza, verificar a possível causa desse bloqueio e orientar como podemos solucionar o problema?

Agradeço desde já pela atenção e pelo suporte!

Welcome to the InfinityFree community forum! Good to have you here.

  • Most people answering here are volunteers. They’re often the fastest source of help. Admin (the only staff member) checks in about once a day for issues on our end.
  • Volunteers can’t see your account or website. Share what you actually see, like error messages and what happens when you try something. That’s more useful than your theory of what’s wrong.
  • AI tools often get InfinityFree wrong. If a volunteer’s advice differs from what an AI told you, please try the volunteer’s suggestion first.
  • Solving an issue is a joint effort. Try the suggestions you get and report back what happened.

Beep boop, I’m a bot! I dug through the forum to get you started. I sometimes get things wrong though, so do with this what you will until a human has a look.

Pelo que encontrei, você não é o único: outros tópicos de hoje descrevem o mesmo sintoma, um POST multipart/form-data que recebe “403 Forbidden” do openresty enquanto JSON e URL-encoded funcionam. Nenhum deles tem uma causa confirmada ainda, então não sei dizer se existe uma regra no servidor ou o que a causaria.

Um deles é este, que também funcionava até ontem e falha com um único campo de texto, sem arquivo:

Outro é este, de um formulário com imagens:

Seus testes mostram que o bloqueio acontece antes do seu PHP, e isso combina com o que os outros relataram.

Os envios multipart funcionavam no seu site antes, e desde quando começou o 403? Isso ajuda a separar uma mudança recente na plataforma de algo que sempre foi bloqueado. Você também disse que “alguns envios funcionam”, então me diga o que os envios que passam têm de diferente dos que falham, como o tamanho ou o conteúdo dos campos.

sim, funcionavam normalmente, o erro começou a aparecer hoje pela manhã

Solution: Instead of sending the data as multipart, send the image as a text string in a regular form submission.

  • Read the selected image and convert it to a Base64 string.

  • Submit the form using application/x-www-form-urlencoded format, which is not blocked.

    This is the temporary workaround I implemented while waiting for InfinityFree’s response.