Especificações e Limitações
⚡ Especificações Técnicas
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
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
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