Moderazione automatizzata
Il sistema di moderazione automatizzata utilizza un meccanismo di punteggio per tracciare le violazioni degli utenti. Man mano che gli utenti compiono azioni come accessi, registrazioni o invio di messaggi eccessivi, accumulano punteggi di violazione. Al raggiungimento di una soglia prestabilita, l'utente e il suo IP vengono temporaneamente bannati. Questo sistema garantisce la sicurezza della piattaforma monitorando e penalizzando le attività rapide o sospette.
Sistema di moderazione automatizzato (opzionale)
Il sistema di moderazione automatizzata utilizza un meccanismo di punteggio per tracciare le violazioni degli utenti. Man mano che gli utenti compiono azioni come accessi, registrazioni o invio di messaggi eccessivi, accumulano punteggi di violazione. Al raggiungimento di una soglia prestabilita, l'utente e il suo IP vengono temporaneamente bannati. Questo sistema garantisce la sicurezza della piattaforma monitorando e penalizzando le attività rapide o sospette.
In produzione, dovresti disporre di Cloudflare o di un'altra protezione DDoS per proteggere realmente il server da richieste eccessive, ma queste modifiche ti proteggeranno in gran parte da uno o più malintenzionati che prendono di mira la tua istanza distribuita per il proxying.
Note
- Utilizza la cache per la sicurezza di base e la registrazione delle violazioni (ban, messaggi simultanei, superamento dei limiti di frequenza)
- Nel prossimo futuro, aggiungerò il supporto a Redis per le istanze in produzione, che può essere facilmente iniettato nell'attuale configurazione di caching.
- Il superamento di uno qualsiasi dei limitatori di frequenza (accesso/registrazione/messaggistica) è considerato una violazione, il punteggio predefinito è 1
- L'origine non-browser è una violazione
- Il punteggio predefinito per ogni violazione è configurabile
- L'abilitazione di uno qualsiasi dei limitatori e/o dei ban abilita la memorizzazione nella cache/la registrazione
- I log delle violazioni possono essere trovati nella cartella data, che viene creata all'avvio della registrazione:
librechat/data- Vengono registrate solo le violazioni
violations.jsontiene traccia del conteggio totale per ogni violazione per utentelogs.jsonregistra ogni singola violazione per utente
- I log di ban sono archiviati in MongoDB nella collezione
logs. Sono transitori poiché esistono solo per la durata del ban.- Se desideri rimuovere un ban manualmente, dovresti rimuovere l'utente dal database manualmente e riavviare il server.
- È previsto anche il supporto per Redis.
Tipi di Rate Limiter
Limitazione della frequenza di accesso e registrazione
Previene attacchi brute force e registrazioni spam limitando il numero di tentativi di accesso o di nuove registrazioni di account che possono essere effettuati da un singolo indirizzo IP entro un determinato intervallo di tempo.
Limitazione della frequenza dei messaggi
Controlla la frequenza con cui gli utenti possono inviare messaggi per prevenire spam e abusi:
- Limitazione dei messaggi simultanei: limita il numero di messaggi che un utente può inviare contemporaneamente (impedisce agli utenti di aprire più schede per aggirare i limiti)
- Limitazione della frequenza dei messaggi: Controlla la frequenza con cui possono essere inviati i messaggi, configurabile sia per indirizzo IP che per singolo utente
Limitazione della frequenza di importazione delle conversazioni
Previene l'abuso della funzionalità di importazione delle conversazioni limitando il numero di conversazioni che possono essere importate entro un determinato intervallo di tempo. Questo aiuta a prevenire:
- Importazioni massive di dati che potrebbero sovraccaricare il server
- Script automatizzati che tentano di inondare il sistema con dati importati
- Esaurimento delle risorse dovuto all'elaborazione di un gran numero di importazioni
Limiti predefiniti:
- Basato su IP: 100 importazioni al minuto
- Basato sull'utente: 50 importazioni al minuto (disabilitato per impostazione predefinita)
Limitazione della frequenza di forking delle conversazioni
Controlla la frequenza con cui gli utenti possono creare fork (copie) di conversazioni esistenti. Questo previene:
- Eccessiva crescita del database dovuta alla duplicazione di massa delle conversazioni
- Esaurimento delle risorse dovuto alle operazioni di fork
- Abuso della funzionalità di forking per spam o data harvesting
Limiti predefiniti:
- Basato su IP: 30 fork al minuto
- Basato sull'utente: 7 fork al minuto (disabilitato per impostazione predefinita)
Limitazione della frequenza di caricamento dei file
Configurato tramite il file librechat.yaml, questo controlla la frequenza con cui gli utenti possono caricare file per prevenire l'abuso dello spazio di archiviazione e l'esaurimento della larghezza di banda.
Limitazione della frequenza (Rate Limiting) di Text-to-Speech (TTS)
Controlla la frequenza con cui gli utenti possono richiedere conversioni da testo a parlato. Questo previene:
- Costi eccessivi di utilizzo dell'API
- Esaurimento delle risorse del server dovuto alla generazione audio
- Abuso della funzionalità TTS per la raccolta dati
Configurato tramite il file librechat.yaml con limiti personalizzabili per IP e per utente.
Limitazione della frequenza (Rate Limiting) Speech-to-Text (STT)
Controlla la frequenza con cui gli utenti possono inviare audio per la trascrizione. Questo previene:
- Costi eccessivi di utilizzo dell'API
- Esaurimento delle risorse del server dovuto all'elaborazione audio
- Abuso della funzionalità STT per servizi di trascrizione non autorizzati
Configurato tramite il file librechat.yaml con limiti personalizzabili per IP e per utente.
Limitazione della frequenza di reset della password
Controlla la frequenza con cui gli utenti possono richiedere le email di reimpostazione della password. Questo previene:
- Attacchi di email bombing
- Abuso del sistema di reimpostazione della password
- Utilizzo eccessivo del servizio email
Limitazione della frequenza di verifica email
Controlla la frequenza con cui gli utenti possono richiedere messaggi di verifica email. Questo previene:
- Attacchi spam tramite il sistema di verifica
- Abuso del servizio email
- Esaurimento delle risorse dovuto alle richieste di verifica
Limitazione della frequenza delle chiamate agli strumenti
Controlla la frequenza con cui gli utenti possono effettuare chiamate a strumenti/plugin. Questo previene:
- Utilizzo eccessivo dell'API da parte degli strumenti integrati
- Abuso delle integrazioni di servizi esterni
- Esaurimento delle risorse dovuto all'elaborazione degli strumenti
Limitazione della frequenza di accesso alle conversazioni
Controlla la frequenza con cui gli utenti possono accedere o tentare di accedere alle conversazioni. Questo previene:
- Tentativi di accesso non autorizzati
- Attacchi di data scraping
- Query al database eccessive
Rate Limiters
I limitatori di frequenza attuali del progetto sono i seguenti (vedi sotto nella sezione setup per i valori predefiniti):
- Limitazione della frequenza di accesso e registrazione
Optional:Concurrent Message limiting (only X messages at a time per user)Optional:Limitazione dei messaggi (con quale frequenza un utente può inviare un messaggio, configurabile per IP e Utente)Optional:Importazione limitata delle conversazioni (con quale frequenza un utente può importare conversazioni, configurabile per IP e Utente)Optional:Limitazione del forking delle conversazioni (con quale frequenza un utente può effettuare il fork delle conversazioni, configurabile per IP e Utente)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)
Per ulteriori dettagli, fare riferimento alla guida alla configurazione fornita qui: Automated Moderation
Com’è questa guida?