Automatisierte Moderation
Das Automated Moderation System verwendet einen Bewertungsmechanismus, um Benutzerverstöße zu verfolgen. Wenn Benutzer Aktionen wie übermäßige Anmeldungen, Registrierungen oder Nachrichtenversand durchführen, sammeln sie Verstoßpunkte an. Beim Erreichen eines festgelegten Schwellenwerts werden der Benutzer und dessen IP-Adresse vorübergehend gesperrt. Dieses System gewährleistet die Plattformsicherheit, indem es schnelle oder verdächtige Aktivitäten überwacht und sanktioniert.
Automatisiertes Moderationssystem (optional)
Das Automated Moderation System verwendet einen Bewertungsmechanismus, um Benutzerverstöße zu verfolgen. Wenn Benutzer Aktionen wie übermäßige Anmeldungen, Registrierungen oder Nachrichtenversand durchführen, sammeln sie Verstoßpunkte an. Beim Erreichen eines festgelegten Schwellenwerts werden der Benutzer und dessen IP-Adresse vorübergehend gesperrt. Dieses System gewährleistet die Plattformsicherheit, indem es schnelle oder verdächtige Aktivitäten überwacht und sanktioniert.
In der Produktion sollten Sie Cloudflare oder einen anderen DDoS-Schutz implementieren, um den Server wirksam vor übermäßigen Anfragen zu schützen. Diese Änderungen werden Sie jedoch weitgehend vor einzelnen oder mehreren böswilligen Akteuren schützen, die Ihre bereitgestellte Instanz für Proxying-Zwecke missbrauchen wollen.
Hinweise
- Verwendet Caching für grundlegende Sicherheit und die Protokollierung von Verstößen (Sperren, gleichzeitige Nachrichten, Überschreiten von Ratenbegrenzungen)
- In naher Zukunft werde ich Redis-Unterstützung für Produktionsinstanzen hinzufügen, die einfach in das aktuelle Caching-Setup integriert werden kann.
- Das Überschreiten eines der Ratenbegrenzer (Anmeldung/Registrierung/Messaging) wird als Verstoß gewertet, der Standardwert ist 1
- Der Ursprung außerhalb des Browsers ist ein Verstoß
- Der Standardwert für jeden Verstoß ist konfigurierbar
- Das Aktivieren von Limitern und/oder Sperren aktiviert das Caching/Logging.
- Verstoßprotokolle finden sich im Datenordner, der erstellt wird, sobald die Protokollierung beginnt:
librechat/data- Nur Verstöße werden protokolliert
violations.jsonverfolgt die Gesamtzahl der Verstöße pro Benutzer.logs.jsonzeichnet jeden einzelnen Verstoß pro Benutzer auf
- Sperrprotokolle werden in MongoDB unter der
logscollection gespeichert. Sie sind temporär, da sie nur für die Dauer der Sperre existieren.- Wenn Sie eine Sperre manuell aufheben möchten, müssen Sie den Benutzer manuell aus der Datenbank entfernen und den Server neu starten.
- Redis-Unterstützung ist hierfür ebenfalls geplant.
Typen des Rate Limiters
Ratenbegrenzung für Login und Registrierung
Verhindert Brute-Force-Angriffe und Spam-Registrierungen, indem die Anzahl der Anmeldeversuche oder neuen Kontoregistrierungen, die von einer einzelnen IP-Adresse innerhalb eines Zeitfensters vorgenommen werden können, begrenzt wird.
Nachrichten-Ratenbegrenzung
Steuert, wie häufig Benutzer Nachrichten senden können, um Spam und Missbrauch zu verhindern:
- Begrenzung gleichzeitiger Nachrichten: Begrenzt die Anzahl der Nachrichten, die ein Benutzer gleichzeitig senden kann (verhindert, dass Benutzer mehrere Tabs öffnen, um Limits zu umgehen)
- Begrenzung der Nachrichtenhäufigkeit: Steuert, wie oft Nachrichten gesendet werden können; konfigurierbar sowohl nach IP-Adresse als auch nach individuellem Benutzer
Import-Konversations-Ratenbegrenzung
Verhindert den Missbrauch der Konversationsimport-Funktion, indem die Anzahl der Konversationen begrenzt wird, die innerhalb eines Zeitfensters importiert werden können. Dies hilft dabei, Folgendes zu verhindern:
- Massen-Datenimporte, die den Server überlasten könnten
- Automatisierte Skripte, die versuchen, das System mit importierten Daten zu fluten
- Ressourcenerschöpfung durch die Verarbeitung einer großen Anzahl von Importen
Standardlimits:
- IP-basiert: 100 Importe pro Minute
- Benutzerbasiert: 50 Importe pro Minute (standardmäßig deaktiviert)
Ratenbegrenzung für das Forken von Konversationen
Steuert, wie oft Benutzer Forks (Kopien) von bestehenden Konversationen erstellen können. Dies verhindert:
- Übermäßiges Datenbankwachstum durch massenhafte Duplizierung von Konversationen
- Ressourcenerschöpfung durch Fork-Operationen
- Missbrauch der Forking-Funktion für Spam oder Daten-Harvesting
Standardlimits:
- IP-basiert: 30 Forks pro Minute
- Benutzerbasiert: 7 Forks pro Minute (standardmäßig deaktiviert)
Ratenbegrenzung für Datei-Uploads
Konfiguriert über die librechat.yaml Datei, steuert dies, wie oft Benutzer Dateien hochladen können, um Speicher-Missbrauch und Bandbreitenerschöpfung zu verhindern.
Text-to-Speech (TTS) Ratenbegrenzung
Steuert, wie oft Benutzer Text-zu-Sprache-Konvertierungen anfordern können. Dies verhindert:
- Übermäßige API-Nutzungskosten
- Erschöpfung der Serverressourcen durch Audiogenerierung
- Missbrauch der TTS-Funktion zur Datenerfassung
Konfiguriert über die librechat.yaml Datei mit anpassbaren Limits pro IP und pro Benutzer.
Speech-to-Text (STT) Ratenbegrenzung
Steuert, wie oft Benutzer Audio zur Transkription einreichen können. Dies verhindert:
- Übermäßige API-Nutzungskosten
- Erschöpfung der Serverressourcen durch Audioverarbeitung
- Missbrauch der STT-Funktion für nicht autorisierte Transkriptionsdienste
Konfiguriert über die librechat.yaml Datei mit anpassbaren Limits pro IP und pro Benutzer.
Ratenbegrenzung für das Zurücksetzen von Passwörtern
Steuert, wie oft Benutzer E-Mails zum Zurücksetzen des Passworts anfordern können. Dies verhindert:
- E-Mail-Bombing-Angriffe
- Missbrauch des Passwort-Zurücksetzungssystems
- Übermäßige Nutzung des E-Mail-Dienstes
E-Mail-Verifizierungs-Ratenbegrenzung
Steuert, wie oft Benutzer E-Mail-Verifizierungsnachrichten anfordern können. Dies verhindert:
- Spam-Angriffe über das Verifizierungssystem
- Missbrauch des E-Mail-Dienstes
- Ressourcenerschöpfung durch Verifizierungsanfragen
Ratenbegrenzung für Tool-Aufrufe
Steuert, wie oft Benutzer Tool-/Plugin-Aufrufe tätigen können. Dies verhindert:
- Übermäßige API-Nutzung durch integrierte Tools
- Missbrauch von externen Service-Integrationen
- Ressourcenerschöpfung durch Tool-Verarbeitung
Ratenbegrenzung für den Konversationszugriff
Steuert, wie oft Benutzer auf Unterhaltungen zugreifen oder versuchen können, darauf zuzugreifen. Dies verhindert:
- Versuche für unbefugten Zugriff
- Angriffe durch Data Scraping
- Übermäßige Datenbankabfragen
Rate Limiter
Die aktuellen Ratenbegrenzer des Projekts sind wie folgt (siehe unten unter Einrichtung für die Standardwerte):
- Ratenbegrenzung für Login und Registrierung
Optional:Begrenzung gleichzeitiger Nachrichten (nur X Nachrichten gleichzeitig pro Benutzer)Optional:Nachrichtenbegrenzung (wie oft ein Benutzer eine Nachricht senden kann, konfigurierbar nach IP und Benutzer)Optional:Begrenzung des Imports von Konversationen (wie oft ein Benutzer Konversationen importieren kann, konfigurierbar nach IP und Benutzer)Optional:Begrenzung des Conversation-Forking (wie oft ein Benutzer Konversationen forken kann, konfigurierbar nach IP und Benutzer)Optional:Text-to-Speech (TTS) Begrenzung (konfigurierbar über dielibrechat.yamlKonfigurationsdatei)Optional:Speech-to-Text (STT) Begrenzung (konfigurierbar über dielibrechat.yamlKonfigurationsdatei)Optional:Begrenzung des Datei-Uploads (konfigurierbar über dielibrechat.yamlKonfigurationsdatei)
Weitere Einzelheiten finden Sie im Konfigurationsleitfaden, der hier bereitgestellt wird: Automated Moderation
Wie finden Sie diese Anleitung?