Zautomatyzowana moderacja
Zautomatyzowany system moderacji wykorzystuje mechanizm punktacji do śledzenia naruszeń użytkowników. Gdy użytkownicy wykonują działania takie jak nadmierna liczba logowań, rejestracji lub wysyłanie wiadomości, gromadzą punkty naruszeń. Po osiągnięciu określonego progu użytkownik oraz jego adres IP są tymczasowo blokowani. System ten zapewnia bezpieczeństwo platformy poprzez monitorowanie i karanie gwałtownych lub podejrzanych aktywności.
Zautomatyzowany system moderacji (opcjonalnie)
Zautomatyzowany system moderacji wykorzystuje mechanizm punktacji do śledzenia naruszeń użytkowników. Gdy użytkownicy wykonują działania takie jak nadmierna liczba logowań, rejestracji lub wysyłanie wiadomości, gromadzą punkty naruszeń. Po osiągnięciu określonego progu użytkownik oraz jego adres IP są tymczasowo blokowani. System ten zapewnia bezpieczeństwo platformy poprzez monitorowanie i karanie gwałtownych lub podejrzanych aktywności.
W środowisku produkcyjnym powinieneś korzystać z Cloudflare lub innego zabezpieczenia przed atakami DDoS, aby skutecznie chronić serwer przed nadmierną liczbą zapytań, jednak te zmiany w dużej mierze ochronią Cię przed pojedynczymi lub kilkoma nieuczciwymi użytkownikami, którzy obierają za cel Twoją wdrożoną instancję w celu wykorzystania jej jako proxy.
Uwagi
- Wykorzystuje Caching do podstawowych zabezpieczeń i logowania naruszeń (bany, jednoczesne wiadomości, przekroczenie limitów zapytań)
- W niedalekiej przyszłości dodam obsługę Redis dla instancji produkcyjnych, którą można łatwo wstrzyknąć do obecnej konfiguracji buforowania.
- Przekroczenie któregokolwiek z limitów szybkości (logowanie/rejestracja/wiadomości) jest uważane za naruszenie, domyślny wynik to 1
- Pochodzenie inne niż przeglądarka stanowi naruszenie
- Domyślny wynik dla każdego naruszenia jest konfigurowalny
- Włączenie któregokolwiek z limitów i/lub blokad aktywuje buforowanie/logowanie
- Dzienniki naruszeń można znaleźć w folderze data, który jest tworzony w momencie rozpoczęcia rejestrowania:
librechat/data- Rejestrowane są tylko naruszenia
violations.jsonśledzi całkowitą liczbę naruszeń dla każdego użytkownikalogs.jsonrejestruje każde pojedyncze naruszenie dla każdego użytkownika
- Dzienniki banów są przechowywane w MongoDB w kolekcji
logs. Są one tymczasowe, ponieważ istnieją tylko przez czas trwania bana.- Jeśli chcesz ręcznie usunąć blokadę, musisz usunąć użytkownika z bazy danych ręcznie i zrestartować serwer.
- Planowane jest również wsparcie dla Redis w tym zakresie.
Typy ograniczników szybkości (Rate Limiter)
Ograniczanie częstotliwości logowania i rejestracji
Zapobiega atakom typu brute force oraz rejestracjom spamerskim poprzez ograniczenie liczby prób logowania lub rejestracji nowych kont, które mogą zostać wykonane z jednego adresu IP w określonym przedziale czasowym.
Ograniczanie częstotliwości wiadomości
Kontroluje częstotliwość wysyłania wiadomości przez użytkowników w celu zapobiegania spamowi i nadużyciom:
- Ograniczenie jednoczesnych wiadomości: Ogranicza liczbę wiadomości, które użytkownik może wysłać jednocześnie (zapobiega otwieraniu przez użytkowników wielu kart w celu obejścia limitów)
- Ograniczanie częstotliwości wiadomości: Kontroluje, jak często wiadomości mogą być wysyłane, z możliwością konfiguracji zarówno według adresu IP, jak i poszczególnego użytkownika
Limitowanie szybkości importu konwersacji
Zapobiega nadużywaniu funkcji importu konwersacji poprzez ograniczenie liczby konwersacji, które można zaimportować w określonym przedziale czasowym. Pomaga to zapobiegać:
- Masowe importy danych, które mogłyby przeciążyć serwer
- Zautomatyzowane skrypty próbujące przeciążyć system importowanymi danymi
- Wyczerpanie zasobów wynikające z przetwarzania dużej liczby importów
Domyślne limity:
- Oparte na IP: 100 zapytań na minutę
- Oparte na użytkowniku: 50 importów na minutę (domyślnie wyłączone)
Ograniczanie częstotliwości forkowania konwersacji
Określa, jak często użytkownicy mogą tworzyć forki (kopie) istniejących konwersacji. Zapobiega to:
- Nadmierny wzrost bazy danych spowodowany masowym powielaniem konwersacji
- Wyczerpanie zasobów z operacji fork
- Nadużywanie funkcji forkowania do spamu lub pozyskiwania danych
Domyślne limity:
- Oparte na IP: 30 zapytań na minutę
- Oparte na użytkowniku: 7 forków na minutę (domyślnie wyłączone)
Ograniczanie szybkości przesyłania plików
Konfigurowane za pomocą pliku librechat.yaml, ustawienie to kontroluje częstotliwość przesyłania plików przez użytkowników, aby zapobiec nadużyciom pamięci masowej i wyczerpaniu przepustowości.
Ograniczanie szybkości (Rate Limiting) Text-to-Speech (TTS)
Określa, jak często użytkownicy mogą żądać konwersji tekstu na mowę. Zapobiega to:
- Nadmierne koszty użycia API
- Wyczerpanie zasobów serwera przez generowanie dźwięku
- Nadużywanie funkcji TTS do zbierania danych
Konfigurowane za pomocą pliku librechat.yaml z możliwością dostosowania limitów na adres IP oraz na użytkownika.
Ograniczanie szybkości (Rate Limiting) funkcji Speech-to-Text (STT)
Określa, jak często użytkownicy mogą przesyłać dźwięk do transkrypcji. Zapobiega to:
- Nadmierne koszty użycia API
- Wyczerpanie zasobów serwera spowodowane przetwarzaniem dźwięku
- Nadużywanie funkcji STT do nieautoryzowanych usług transkrypcji
Konfigurowane za pomocą pliku librechat.yaml z możliwością dostosowania limitów na adres IP oraz na użytkownika.
Ograniczanie częstotliwości resetowania hasła
Określa, jak często użytkownicy mogą żądać e-maili z resetowaniem hasła. Zapobiega to:
- Ataki typu email bombing
- Nadużywanie systemu resetowania hasła
- Nadmierne korzystanie z usługi poczty elektronicznej
Ograniczanie częstotliwości weryfikacji adresu e-mail
Określa, jak często użytkownicy mogą prosić o wiadomości weryfikacyjne e-mail. Zapobiega to:
- Ataki spamowe poprzez system weryfikacji
- Nadużywanie usługi poczty elektronicznej
- Wyczerpanie zasobów wynikające z żądań weryfikacji
Ograniczanie częstotliwości wywołań narzędzi (Tool Call Rate Limiting)
Określa, jak często użytkownicy mogą wywoływać narzędzia/wtyczki. Zapobiega to:
- Nadmierne użycie API przez zintegrowane narzędzia
- Nadużywanie integracji z usługami zewnętrznymi
- Wyczerpanie zasobów podczas przetwarzania narzędzi
Ograniczanie częstotliwości dostępu do konwersacji
Określa, jak często użytkownicy mogą uzyskiwać dostęp lub próbować uzyskać dostęp do konwersacji. Zapobiega to:
- Próby nieautoryzowanego dostępu
- Ataki typu data scraping
- Nadmierna liczba zapytań do bazy danych
Limitery szybkości (Rate Limiters)
Obecne limitery szybkości (rate limiters) projektu są następujące (zobacz poniżej w sekcji konfiguracji domyślne wartości):
- Ograniczanie częstotliwości logowania i rejestracji
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 throughlibrechat.yamlconfig file)Optional:Speech-to-Text (STT) limiting (configurable throughlibrechat.yamlconfig file)Optional:File Upload limiting (configurable throughlibrechat.yamlconfig file)
Aby uzyskać więcej szczegółów, zapoznaj się z przewodnikiem konfiguracji dostępnym tutaj: Automated Moderation
Jaka jest ta instrukcja?