Moderação Automatizada
O Automated Moderation System utiliza um mecanismo de pontuação para rastrear violações dos usuários. À medida que os usuários cometem ações como excesso de logins, registros ou envio de mensagens, eles acumulam pontos de violação. Ao atingir um limite definido, o usuário e seu IP são banidos temporariamente. Este sistema garante a segurança da plataforma ao monitorar e penalizar atividades rápidas ou suspeitas.
Sistema de Moderação Automatizado (opcional)
O Automated Moderation System utiliza um mecanismo de pontuação para rastrear violações dos usuários. À medida que os usuários cometem ações como excesso de logins, registros ou envio de mensagens, eles acumulam pontos de violação. Ao atingir um limite definido, o usuário e seu IP são banidos temporariamente. Este sistema garante a segurança da plataforma ao monitorar e penalizar atividades rápidas ou suspeitas.
Em produção, você deve ter o Cloudflare ou alguma outra proteção contra DDoS implementada para realmente proteger o servidor contra solicitações excessivas, mas essas alterações protegerão você em grande parte contra um ou vários agentes mal-intencionados que visam sua instância implantada para proxy.
Notas
- Usa Caching para segurança básica e registro de violações (banimentos, mensagens simultâneas, exceder limites de taxa)
- Em um futuro próximo, adicionarei suporte ao Redis para instâncias de produção, o qual pode ser facilmente injetado na configuração de cache atual.
- Exceder qualquer um dos limitadores de taxa (login/registro/mensagens) é considerado uma violação, a pontuação padrão é 1
- A origem não é do navegador, o que constitui uma violação
- A pontuação padrão para cada violação é configurável
- Ativar qualquer um dos limitadores e/ou banimentos ativa o cache/log
- Os logs de violação podem ser encontrados na pasta data, que é criada quando o registro é iniciado:
librechat/data- Apenas violações são registradas
violations.jsonmantém o registro da contagem total de cada violação por usuáriologs.jsonregistra cada violação individual por usuário
- Os logs de banimento são armazenados no MongoDB na coleção
logs. Eles são transitórios, pois existem apenas durante a duração do banimento.- Se você quiser remover um banimento manualmente, você precisará removê-lo do banco de dados manualmente e reiniciar o servidor.
- O suporte ao Redis também está planejado para isso.
Tipos de Rate Limiter
Limitação de Taxa de Login e Registro
Previne ataques de força bruta e registros de spam ao limitar quantas tentativas de login ou novos registros de conta podem ser feitos a partir de um único endereço IP dentro de um intervalo de tempo.
Limitação de Taxa de Mensagens
Controla a frequência com que os usuários podem enviar mensagens para evitar spam e abuso:
- Concurrent Message Limiting: Limita quantas mensagens um usuário pode enviar simultaneamente (evita que usuários abram várias abas para contornar os limites)
- Limitação de Frequência de Mensagens: Controla a frequência com que as mensagens podem ser enviadas, configurável tanto por endereço IP quanto por usuário individual
Limitação de Taxa de Importação de Conversas
Previne o abuso do recurso de importação de conversas ao limitar quantas conversas podem ser importadas dentro de um intervalo de tempo. Isso ajuda a prevenir:
- Importações de dados em massa que podem sobrecarregar o servidor
- Scripts automatizados tentando inundar o sistema com dados importados
- Esgotamento de recursos devido ao processamento de um grande número de importações
Limites padrão:
- Baseado em IP: 100 requisições por minuto
- Baseado no usuário: 50 importações por minuto (desativado por padrão)
Limitação de Taxa de Fork de Conversa
Controla a frequência com que os usuários podem criar forks (cópias) de conversas existentes. Isso evita:
- Crescimento excessivo do banco de dados devido à duplicação em massa de conversas
- Esgotamento de recursos devido a operações de fork
- Abuso do recurso de forking para spam ou coleta de dados
Limites padrão:
- Baseado em IP: 30 forks por minuto
- Baseado no usuário: 7 forks por minuto (desativado por padrão)
Limitação de Taxa de Upload de Arquivos
Configurado através do arquivo librechat.yaml, isso controla a frequência com que os usuários podem fazer upload de arquivos para evitar o abuso de armazenamento e o esgotamento da largura de banda.
Limitação de Taxa de Text-to-Speech (TTS)
Controla a frequência com que os usuários podem solicitar conversões de texto em fala. Isso evita:
- Custos excessivos de uso da API
- Esgotamento de recursos do servidor devido à geração de áudio
- Abuso do recurso de TTS para coleta de dados
Configurado por meio do arquivo librechat.yaml com limites personalizáveis por IP e por usuário.
Limitação de Taxa de Speech-to-Text (STT)
Controla a frequência com que os usuários podem enviar áudio para transcrição. Isso evita:
- Custos excessivos de uso da API
- Esgotamento de recursos do servidor devido ao processamento de áudio
- Abuso do recurso de STT para serviços de transcrição não autorizados
Configurado por meio do arquivo librechat.yaml com limites personalizáveis por IP e por usuário.
Limitação de Taxa de Redefinição de Senha
Controla a frequência com que os usuários podem solicitar e-mails de redefinição de senha. Isso evita:
- Ataques de bombardeio de e-mail
- Abuso do sistema de redefinição de senha
- Uso excessivo do serviço de e-mail
Limitação de Taxa de Verificação de E-mail
Controla a frequência com que os usuários podem solicitar mensagens de verificação de e-mail. Isso evita:
- Ataques de spam através do sistema de verificação
- Abuso do serviço de e-mail
- Esgotamento de recursos devido a solicitações de verificação
Limitação de Taxa de Chamada de Ferramentas
Controla a frequência com que os usuários podem fazer chamadas de ferramentas/plugins. Isso evita:
- Uso excessivo de API por ferramentas integradas
- Abuso de integrações de serviços externos
- Esgotamento de recursos devido ao processamento de ferramentas
Limitação de Taxa de Acesso a Conversas
Controla a frequência com que os usuários podem acessar ou tentar acessar conversas. Isso evita:
- Tentativas de acesso não autorizado
- Ataques de raspagem de dados
- Consultas excessivas ao banco de dados
Limitadores de Taxa
Os limitadores de taxa atuais do projeto são os seguintes (veja abaixo em configuração para os valores padrão):
- Limite de taxa de login e registro
Optional:Concurrent Message limiting (only X messages at a time per user)Optional:Message limiting (how often a user can send a message, configurable by IP and User)Optional:Import conversation limiting (how often a user can import conversations, configurable by IP and User)Optional:Conversation forking limiting (how often a user can fork conversations, configurable by IP and User)Optional:Text-to-Speech (TTS) limiting (configurable throughlibrechat.yamlconfig file)Optional:Speech-to-Text (STT) limiting (configurable throughlibrechat.yamlconfig file)Optional:File Upload limiting (configurable throughlibrechat.yamlconfig file)
Para mais detalhes, consulte o guia de configuração fornecido aqui: Moderação Automatizada
Como está este guia?