Visão geral técnica do plugin Plugin Limitador de Formulários Joomla
Objetivo
O plugin Limitador de Formulários Joomla oferece um mecanismo de proteção leve e baseado em sessões contra o abuso de formulários ou submissões rápidas acidentais. Garante que os utilizadores só podem enviar formulários um número limitado de vezes dentro de um intervalo de tempo definido.
Principais características
✅ Tracking baseado em sessões: Mantém os registos de envios na sessão do utilizador, sem necessidade de armazenamento em base de dados.
✅ Limites personalizáveis: Configure facilmente o número permitido de envios e o período de tempo nas definições do plugin.
✅ Proteção apenas no frontend: Aplica-se apenas no frontend do website, deixando a funcionalidade do backend inalterada.
✅ Limites de taxa específicos para formulários: Suporta múltiplos formulários, passando opcionalmente um form_id para rastrear os envios de forma independente.
Como Funciona?
- Quando um formulário é enviado (solicitação POST), o plugin Joomla Rate Limiter verifica quantas vezes o formulário foi enviado por este utilizador dentro do período de tempo configurado.
Se a contagem de envios exceder o limite, o plugin: - Apresenta uma mensagem de aviso (Está a enviar com muita frequência...).
- Redireciona o utilizador de volta para a página inicial ou para outra página definida.
- Se estiver abaixo do limite, regista o registo de data e hora de envio atual e permite que o pedido prossiga.
Fluxo de trabalho técnico
1️⃣ Initialização:
- O plugin é carregado quando o Joomla dispara onAfterInitialise().
2️⃣ Frontend-only Execution:
- The plugin skips execution if running on the Joomla administrator.
3️⃣ Configuração:
- timeWindow (segundos): ex. 600 (10 minutos).
- submissionLimit: ex. 5 submissões permitidas.
4️⃣ Rastreamento de Envio:
- Os registos de data e hora dos envios são armazenados na sessão PHP (por utilizador).
- Os envios mais antigos, fora do período de tempo, são automaticamente descartados.
5️⃣ Limitação de taxa:
-
Se a contagem de envios exceder o limite permitido, o utilizador será bloqueado e redirecionado.
Finalidade
O plugin Joomla Form Rate Limiter oferece um mecanismo de proteção leve e baseado em sessões contra o abuso de formulários ou submissões rápidas acidentais. Garante que os utilizadores só podem enviar formulários um número limitado de vezes dentro de um intervalo de tempo definido.