Geautomatiseerde moderatie
Het Automated Moderation System gebruikt een scoresysteem om gebruikersovertredingen bij te houden. Wanneer gebruikers acties uitvoeren zoals overmatig inloggen, registreren of berichten versturen, verzamelen ze overtredingspunten. Bij het bereiken van een ingestelde drempelwaarde worden de gebruiker en hun IP-adres tijdelijk verbannen. Dit systeem waarborgt de platformbeveiliging door snelle of verdachte activiteiten te monitoren en te bestraffen.
Geautomatiseerd moderatiesysteem (optioneel)
Het Automated Moderation System gebruikt een scoresysteem om gebruikersovertredingen bij te houden. Wanneer gebruikers acties uitvoeren zoals overmatig inloggen, registreren of berichten versturen, verzamelen ze overtredingspunten. Bij het bereiken van een ingestelde drempelwaarde worden de gebruiker en hun IP-adres tijdelijk verbannen. Dit systeem waarborgt de platformbeveiliging door snelle of verdachte activiteiten te monitoren en te bestraffen.
In productieomgevingen is het raadzaam om Cloudflare of een andere vorm van DDoS-beveiliging te implementeren om de server daadwerkelijk te beschermen tegen overmatige verzoeken, maar deze wijzigingen zullen u grotendeels beschermen tegen individuele of meerdere kwaadwillenden die uw geïmplementeerde instantie als proxy proberen te gebruiken.
Opmerkingen
- Gebruikt Caching voor basisbeveiliging en het loggen van overtredingen (bans, gelijktijdige berichten, overschrijding van limieten)
- In de nabije toekomst zal ik Redis-ondersteuning toevoegen voor productie-instanties, die eenvoudig kan worden geïnjecteerd in de huidige caching-configuratie.
- Het overschrijden van een van de rate limiters (inloggen/registratie/berichten) wordt beschouwd als een overtreding, de standaardscore is 1
- Niet-browser oorsprong is een schending
- De standaardscore voor elke overtreding is configureerbaar
- Het inschakelen van een van de limiters en/of bans schakelt caching/logging in.
- Schendingslogboeken zijn te vinden in de data-map, die wordt aangemaakt wanneer het loggen begint:
librechat/data- Alleen overtredingen worden gelogd
violations.jsonhoudt het totaal aantal overtredingen per gebruiker bijlogs.jsonregistreert elke individuele overtreding per gebruiker
- Ban-logs worden opgeslagen in MongoDB onder de
logscollectie. Ze zijn tijdelijk omdat ze alleen bestaan voor de duur van de ban.- Als je handmatig een verbanning wilt opheffen, moet je de gebruiker handmatig uit de database verwijderen en de server opnieuw opstarten.
- Redis-ondersteuning hiervoor is ook gepland.
Typen Rate Limiter
Snelheidsbeperking voor inloggen en registratie
Voorkomt brute-force-aanvallen en spamregistraties door het aantal inlogpogingen of nieuwe accountregistraties vanaf één enkel IP-adres binnen een bepaald tijdsbestek te beperken.
Message Rate Limiting
Bepaalt hoe vaak gebruikers berichten kunnen sturen om spam en misbruik te voorkomen:
- Concurrent Message Limiting: Beperkt hoeveel berichten een gebruiker tegelijkertijd kan verzenden (voorkomt dat gebruikers meerdere tabbladen openen om limieten te omzeilen)
- Berichtfrequentiebeperking: Bepaalt hoe vaak berichten kunnen worden verzonden, configureerbaar op zowel IP-adres als individuele gebruiker
Import Conversation Rate Limiting
Voorkomt misbruik van de functie voor het importeren van gesprekken door te beperken hoeveel gesprekken er binnen een bepaald tijdsbestek kunnen worden geïmporteerd. Dit helpt bij het voorkomen van:
- Massa-gegevensimport die de server kan overbelasten
- Geautomatiseerde scripts die proberen het systeem te overspoelen met geïmporteerde gegevens
- Resource-uitputting door het verwerken van grote aantallen imports
Standaardlimieten:
- IP-gebaseerd: 100 imports per minuut
- Gebruikersgebaseerd: 50 imports per minuut (standaard uitgeschakeld)
Conversation Forking Rate Limiting
Bepaalt hoe vaak gebruikers forks (kopieën) van bestaande gesprekken kunnen maken. Dit voorkomt:
- Buitensporige databasegroei door massale duplicatie van gesprekken
- Resource-uitputting door fork-operaties
- Misbruik van de forking-functie voor spam of het verzamelen van gegevens
Standaardlimieten:
- IP-gebaseerd: 30 forks per minuut
- Gebruikersgebaseerd: 7 forks per minuut (standaard uitgeschakeld)
File Upload Rate Limiting
Geconfigureerd via het librechat.yaml bestand, regelt dit hoe vaak gebruikers bestanden kunnen uploaden om misbruik van opslag en uitputting van bandbreedte te voorkomen.
Text-to-Speech (TTS) Rate Limiting
Bepaalt hoe vaak gebruikers tekst-naar-spraak-conversies kunnen aanvragen. Dit voorkomt:
- Buitensporige API-gebruikskosten
- Uitputting van serverbronnen door audiogeneratie
- Misbruik van de TTS-functie voor het verzamelen van gegevens
Geconfigureerd via het librechat.yaml bestand met aanpasbare limieten per IP en per gebruiker.
Speech-to-Text (STT) Rate Limiting
Bepaalt hoe vaak gebruikers audio kunnen indienen voor transcriptie. Dit voorkomt:
- Buitensporige API-gebruikskosten
- Uitputting van serverbronnen door audioverwerking
- Misbruik van de STT-functie voor ongeautoriseerde transcriptiediensten
Geconfigureerd via het librechat.yaml bestand met aanpasbare limieten per IP en per gebruiker.
Snelheidsbeperking voor wachtwoordherstel
Bepaalt hoe vaak gebruikers e-mails voor het opnieuw instellen van hun wachtwoord kunnen aanvragen. Dit voorkomt:
- E-mailbombardementen
- Misbruik van het wachtwoordherstelsysteem
- Buitensporig gebruik van de e-mailservice
E-mailverificatie Rate Limiting
Bepaalt hoe vaak gebruikers e-mailverificatieberichten kunnen aanvragen. Dit voorkomt:
- Spam-aanvallen via het verificatiesysteem
- Misbruik van e-maildienst
- Resource-uitputting door verificatieverzoeken
Tool Call Rate Limiting
Bepaalt hoe vaak gebruikers tool/plugin-aanroepen kunnen doen. Dit voorkomt:
- Overmatig API-gebruik door geïntegreerde tools
- Misbruik van externe service-integraties
- Resource-uitputting door toolverwerking
Conversation Access Rate Limiting
Bepaalt hoe vaak gebruikers toegang kunnen krijgen tot of kunnen proberen toegang te krijgen tot gesprekken. Dit voorkomt:
- Pogingen tot ongeautoriseerde toegang
- Data scraping-aanvallen
- Buitensporige databasequery's
Rate Limiters
De huidige rate limiters van het project zijn als volgt (zie hieronder bij setup voor de standaardwaarden):
- Rate limiting voor inloggen en registratie
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:Importeer gespreksbeperking (hoe vaak een gebruiker gesprekken kan importeren, configureerbaar per IP en gebruiker)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)
Voor meer details, raadpleeg de configuratiehandleiding die hier wordt verstrekt: Automated Moderation
Hoe is deze gids?