Czym jest SafeNameAndChat?
SafeNameAndChat to wtyczka Metamoda autorstwa @WPMGPRoSToTeMy, która oczyszcza nazwy graczy i wiadomości czatu, zanim silnik wyśle je dalej, zamykając całą rodzinę wieloletnich exploitów GoldSrc, w których spreparowana nazwa albo wiadomość wywraca klientów pozostałych graczy lub wstrzykuje polecenia konsoli.
To projekt zewnętrzny. Stoi poza organizacją ReHLDS i nie jest przez nią utrzymywany — problemy zgłaszaj w jego własnym systemie zgłoszeń.
Przed czym chroni
Klient GoldSrc traktuje niektóre znaki w szczególny sposób, a gracz, który wstawi je do nazwy albo do wiadomości na czacie, może to wykorzystać:
- Ciągi lokalizacyjne (
#) — wiadomość albo nazwa zawierająca symbole w rodzaju#Spec_Help_Textsprawia, że klient, który je odbierze, potraktuje je jak klucze lokalizacyjne. Zależnie od symbolu klienci się wywracają. - Specyfikatory formatu (
%) —%si podobne trafiające do funkcji formatującej po stronie klienta. - Ampersand (
&) w nazwach — obsługiwany nieprawidłowo w części ścieżek rysowania nazw po stronie klienta. - Wstrzykiwanie poleceń przez
+w nazwach —+bezpośrednio przed literą albo cyfrą odtwarza składnię przypisania+polecenie.
Zamiast wyrzucać gracza albo usuwać znaki, wtyczka zamienia każdy problematyczny znak na jego pełnoszerokościowy odpowiednik z Unicode — # staje się #, a % staje się %. Dla człowieka tekst wygląda tak samo, ale klient przestaje traktować go jak symbol. Wtyczka potrafi też usuwać znaki niedrukowalne i obcinać spacje z początku i końca.
Wymagania
- Metamod (zalecany Metamod-R).
- ReHLDS nie jest wymagany, ale jest wykrywany w czasie działania i używany, gdy jest obecny — wtyczka odpytuje przy starcie
VREHLDS_HLDS_API_VERSION001i, jeśli dostanie odpowiedź, wybiera ścieżkę uwzględniającą silnik.
Wtyczkę można wczytywać i wyładowywać w dowolnym momencie (meta load / meta unload działają bez restartu).
W Instalacji opisano konfigurację, a w Ustawieniach — jedenaście cvarów SNAC_*.