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

Moderación automatizada

El Sistema de Moderación Automatizado utiliza un mecanismo de puntuación para realizar un seguimiento de las infracciones de los usuarios. A medida que los usuarios realizan acciones como inicios de sesión, registros o envío de mensajes excesivos, acumulan puntuaciones de infracción. Al alcanzar un umbral establecido, el usuario y su IP son bloqueados temporalmente. Este sistema garantiza la seguridad de la plataforma mediante la supervisión y penalización de actividades rápidas o sospechosas.

Sistema de moderación automatizado (opcional)

El Sistema de Moderación Automatizado utiliza un mecanismo de puntuación para realizar un seguimiento de las infracciones de los usuarios. A medida que los usuarios realizan acciones como inicios de sesión, registros o envío de mensajes excesivos, acumulan puntuaciones de infracción. Al alcanzar un umbral establecido, el usuario y su IP son bloqueados temporalmente. Este sistema garantiza la seguridad de la plataforma mediante la supervisión y penalización de actividades rápidas o sospechosas.

En producción, debería contar con Cloudflare u otra protección contra DDoS para proteger realmente el servidor de solicitudes excesivas, pero estos cambios le protegerán en gran medida de uno o varios actores malintencionados que intenten utilizar su instancia desplegada como proxy.

Notas

  • Utiliza Caching para seguridad básica y registro de infracciones (baneos, mensajes simultáneos, exceder límites de tasa)
    • En un futuro cercano, añadiré soporte para Redis para instancias en producción, el cual puede ser fácilmente inyectado en la configuración de caché actual.
  • Exceder cualquiera de los limitadores de tasa (inicio de sesión/registro/mensajería) se considera una infracción, la puntuación predeterminada es 1
  • El origen que no es del navegador es una infracción
  • La puntuación predeterminada para cada infracción es configurable
  • Habilitar cualquiera de los limitadores y/o prohibiciones activa el almacenamiento en caché/registro
  • Los registros de infracciones se pueden encontrar en la carpeta data, la cual se crea cuando comienza el registro: librechat/data
    • Solo se registran las infracciones
    • violations.json realiza un seguimiento del recuento total de cada infracción por usuario
    • logs.json registra cada infracción individual por usuario
  • Los registros de bloqueo (ban logs) se almacenan en MongoDB bajo la colección logs. Son transitorios, ya que solo existen durante la duración del bloqueo.
    • Si desea eliminar una prohibición manualmente, tendría que eliminarlos de la base de datos manualmente y reiniciar el servidor.
    • También se planea soporte para Redis para esto.

Tipos de limitador de tasa

Limitación de tasa de inicio de sesión y registro

Previene ataques de fuerza bruta y registros de spam al limitar cuántos intentos de inicio de sesión o registros de cuentas nuevas se pueden realizar desde una única dirección IP dentro de un intervalo de tiempo.

Limitación de tasa de mensajes

Controla la frecuencia con la que los usuarios pueden enviar mensajes para prevenir el spam y el abuso:

  • Limitación de mensajes simultáneos: Limita cuántos mensajes puede enviar un usuario simultáneamente (evita que los usuarios abran múltiples pestañas para eludir los límites)
  • Limitación de frecuencia de mensajes: Controla la frecuencia con la que se pueden enviar mensajes, configurable tanto por dirección IP como por usuario individual

Límite de tasa de importación de conversaciones

Evita el abuso de la función de importación de conversaciones al limitar cuántas conversaciones se pueden importar dentro de un intervalo de tiempo. Esto ayuda a prevenir:

  • Importaciones masivas de datos que podrían sobrecargar el servidor
  • Scripts automatizados que intentan saturar el sistema con datos importados
  • Agotamiento de recursos debido al procesamiento de un gran número de importaciones

Límites predeterminados:

  • Basado en IP: 100 importaciones por minuto
  • Basado en el usuario: 50 importaciones por minuto (deshabilitado de forma predeterminada)

Limitación de tasa de bifurcación de conversaciones

Controla la frecuencia con la que los usuarios pueden crear bifurcaciones (copias) de conversaciones existentes. Esto evita:

  • Crecimiento excesivo de la base de datos debido a la duplicación masiva de conversaciones
  • Agotamiento de recursos por operaciones de fork
  • Abuso de la función de bifurcación (forking) para spam o recolección de datos

Límites predeterminados:

  • Basado en IP: 30 forks por minuto
  • Basado en el usuario: 7 forks por minuto (deshabilitado de forma predeterminada)

Limitación de tasa de carga de archivos

Configurado a través del archivo librechat.yaml, esto controla la frecuencia con la que los usuarios pueden subir archivos para prevenir el abuso del almacenamiento y el agotamiento del ancho de banda.

Limitación de tasa de Text-to-Speech (TTS)

Controla la frecuencia con la que los usuarios pueden solicitar conversiones de texto a voz. Esto evita:

  • Costos excesivos de uso de la API
  • Agotamiento de los recursos del servidor por la generación de audio
  • Abuso de la función TTS para la recolección de datos

Configurado a través del archivo librechat.yaml con límites personalizables por IP y por usuario.

Limitación de tasa de Speech-to-Text (STT)

Controla la frecuencia con la que los usuarios pueden enviar audio para su transcripción. Esto evita:

  • Costos excesivos de uso de la API
  • Agotamiento de recursos del servidor debido al procesamiento de audio
  • Abuso de la función STT para servicios de transcripción no autorizados

Configurado a través del archivo librechat.yaml con límites personalizables por IP y por usuario.

Limitación de tasa de restablecimiento de contraseña

Controla la frecuencia con la que los usuarios pueden solicitar correos electrónicos de restablecimiento de contraseña. Esto evita:

  • Ataques de bombardeo de correo electrónico
  • Abuso del sistema de restablecimiento de contraseña
  • Uso excesivo del servicio de correo electrónico

Limitación de tasa de verificación de correo electrónico

Controla la frecuencia con la que los usuarios pueden solicitar mensajes de verificación de correo electrónico. Esto evita:

  • Ataques de spam a través del sistema de verificación
  • Abuso del servicio de correo electrónico
  • Agotamiento de recursos por solicitudes de verificación

Limitación de tasa de llamadas a herramientas

Controla la frecuencia con la que los usuarios pueden realizar llamadas a herramientas/plugins. Esto evita:

  • Uso excesivo de la API por parte de herramientas integradas
  • Abuso de integraciones de servicios externos
  • Agotamiento de recursos por el procesamiento de herramientas

Limitación de tasa de acceso a conversaciones

Controla la frecuencia con la que los usuarios pueden acceder o intentar acceder a las conversaciones. Esto evita:

  • Intentos de acceso no autorizado
  • Ataques de scraping de datos
  • Consultas excesivas a la base de datos

Limitadores de tasa

Los limitadores de tasa actuales del proyecto son los siguientes (consulte a continuación en la configuración los valores predeterminados):

  • Limitación de tasa de inicio de sesión y 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: Importar limitación de conversaciones (con qué frecuencia un usuario puede importar conversaciones, configurable por IP y usuario)
  • Optional: Limitación de bifurcación de conversaciones (con qué frecuencia un usuario puede bifurcar conversaciones, configurable por IP y usuario)
  • 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 más detalles, consulte la guía de configuración proporcionada aquí: Moderación automatizada

¿Qué te parece esta guía?