¿Qué es SafeNameAndChat?
SafeNameAndChat es un plugin de Metamod de @WPMGPRoSToTeMa que sanea los nombres de jugador y los mensajes de chat antes de que el motor los reenvíe, cerrando así toda una familia de exploits antiguos de GoldSrc en los que un nombre o un mensaje preparado a propósito hace fallar el cliente de otros jugadores o inyecta comandos de consola.
Este es un proyecto de terceros. Está fuera de la organización ReHLDS y no lo mantiene: informa de los problemas en su propio repositorio.
De qué protege
El cliente de GoldSrc trata ciertos caracteres de forma especial, y un jugador que los ponga en su nombre o en el chat puede aprovecharse de ello:
- Cadenas de localización (
#): un mensaje o un nombre con tokens como#Spec_Help_Texthace que el cliente que los recibe los resuelva como claves de localización. Según el token, los clientes se cierran. - Especificadores de formato (
%):%sy similares llegando a una función de formato en el lado del cliente. - Ampersand (
&) en los nombres: mal tratado en algunas rutas de dibujado de nombres del cliente. - Inyección de comandos mediante
+en los nombres: un+seguido inmediatamente de una letra o un número reproduce la sintaxis de asignación+comando.
En lugar de expulsar al jugador o eliminar los caracteres, el plugin sustituye cada carácter problemático por su equivalente Unicode de ancho completo: # pasa a ser #, y % pasa a ser %. Para una persona el texto se lee igual, pero el cliente ya no lo interpreta como un token. También puede eliminar caracteres no imprimibles y recortar los espacios del principio y del final.
Requisitos
- Metamod (se recomienda Metamod-R).
- ReHLDS no es obligatorio, pero se detecta en tiempo de ejecución y se aprovecha si está: el plugin consulta
VREHLDS_HLDS_API_VERSION001al arrancar y, si responde, sigue una ruta consciente del motor.
El plugin se puede cargar y descargar en cualquier momento (meta load / meta unload funcionan sin reiniciar).
Consulta Instalación para ponerlo en marcha y Configuración para las once cvars SNAC_*.