Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

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.json mantém o registro da contagem total de cada violação por usuário
    • logs.json registra 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 through librechat.yaml config file)
  • Optional: Speech-to-Text (STT) limiting (configurable through librechat.yaml config file)
  • Optional: File Upload limiting (configurable through librechat.yaml config file)

Para mais detalhes, consulte o guia de configuração fornecido aqui: Moderação Automatizada

Como está este guia?