Especificações e Limitações

⚡ Especificações Técnicas

Especificação
Valor
Descrição

Fila Máxima

100 webhooks

Limite para evitar overflow de memória

Rate Limiting

30 req/min por domínio

Previne bloqueios por spam

Retry Máximo

3 tentativas

Tentativas automáticas em falha

Timeout

15 segundos

Timeout para requests HTTP

Delay Retry

5s * número_tentativa

Delay exponencial entre retries

Processamento

1 webhook/segundo

Velocidade de processamento da fila

Cleanup

5 minutos

Intervalo de limpeza de rate limits

🚀 Performance e Confiabilidade

Sistema de Fila Inteligente

Situação
Comportamento
Resultado

Webhook Normal

Envio imediato

< 1 segundo

Rate Limited

Entra na fila com delay

Retry automático em 5s

Falha de Rede

Retry com delay exponencial

3 tentativas: 5s, 10s, 15s

Fila Cheia

Rejeita novos webhooks

Evita overflow de memória

Servidor Offline

Continua tentando

Até esgotar tentativas

Rate Limiting Inteligente

-- Por domínio independente
discord.com        -> 30 requests/minuto
hooks.slack.com    -> 30 requests/minuto  
meusite.com        -> 30 requests/minuto

-- Reset automático a cada minuto
-- Proteção contra bloqueios de API
-- Estatísticas de rate limiting disponíveis

📋 Suporte a Plataformas

Discord Webhooks

-- Funcionalidades suportadas:
✅ Mensagens simples
✅ Embeds ricos com campos
✅ Username e avatar customizados
✅ Timestamps automáticos
✅ Cores e formatação
✅ Thumbnails e imagens
✅ Footer personalizado
✅ Múltiplos embeds

Slack Webhooks

-- Funcionalidades suportadas:
✅ Mensagens de texto
✅ Username customizado
✅ Icon emoji ou URL
✅ Canal específico
✅ Attachments com cores
✅ Campos estruturados
✅ Formatação Slack markdown

Webhooks Genéricos

-- Funcionalidades suportadas:
✅ POST requests customizados
✅ Headers personalizados
✅ JSON ou string como payload
✅ Callbacks de sucesso/erro
✅ Retry automático
✅ Rate limiting

🛡️ Proteções de Segurança

Sistema Multi-Camadas

🔒 PROTEÇÃO INTEGRADA:

Camada 1: Validação de Acesso
├─ Stack trace validation
├─ Origem de chamada verificada
└─ Blacklist automático para hacks

Camada 2: Controle de Fila
├─ Limite de 100 webhooks simultâneos
├─ Rate limiting automático por domínio
└─ Cleanup de rate limits antigos

Camada 3: Validação de URLs
├─ Apenas HTTPS/HTTP permitidos
├─ Validação de formato de URL
└─ Proteção contra injection

Camada 4: Anti-Tampering
├─ Detecção de modificação de fila
├─ Validação de integridade
└─ Reportes de segurança

Indicadores de Tentativa de Hack

  • Tentativa de Acesso Direto: LockSystem.Webhook._queue

  • Modificação de Timers: LockSystem.Webhook._timers

  • Bypass de Validação: Calls de origens suspeitas

  • Overflow Intencional: Spam de webhooks

💡 Resolução de Problemas

Problemas Comuns

Problema
Causa Provável
Solução

Webhook não envia

URL inválida ou rate limit

Verificar URL e aguardar rate limit

Rate limited

Muitos requests muito rápido

Implementar delay entre envios

Fila cheia

Spam de webhooks

Usar LockSystem.Webhook.clear()

Falhas frequentes

Servidor de destino offline

Verificar status do serviço

Debug de Webhooks

-- Verificar status da fila e rate limits
local stats = LockSystem.Webhook.stats()

if stats.queue_size > 10 then
    print("⚠️ Fila de webhooks cheia - " .. stats.queue_size .. " itens")
end

if stats.success_rate < 90 then
    print("⚠️ Taxa de sucesso baixa - " .. stats.success_rate .. "%")
end

if stats.active_rate_limits > 0 then
    print("⚠️ Rate limits ativos em " .. stats.active_rate_limits .. " domínios")
end

-- Testar webhook simples
LockSystem.Webhook.send("https://httpbin.org/post", {test = true}, {
    onSuccess = function(response, info)
        print("✅ Teste de webhook bem-sucedido!")
    end,
    onError = function(error)
        print("❌ Teste de webhook falhou: " .. error)
    end
})

Atualizado