RemoteGuard - защита RemoteEvent
Проверка типов аргументов и ограничение частоты вызовов для RemoteEvent и RemoteFunction.
Любой ваш RemoteEvent клиент может вызвать сколько угодно раз и передать в него что угодно. Типовой обработчик покупки предмета обычно содержит сразу три дыры: аргумент не проверяется на тип, вызов можно повторить тысячу раз за секунду, лишние аргументы никто не смотрит. Модуль оборачивает Remote так, что до вашего обработчика доходят только аргументы правильного типа с приемлемой частотой. Лимит считается ведром токенов на игрока: восстанавливается заданное число вызовов в секунду и накапливает запас, чтобы обычные всплески активности не отсекались. Набор готовых проверок комбинируется между собой. При отклонении RemoteFunction возвращает nil, а не бросает ошибку: исключение ушло бы на клиент вместе с текстом и подсказало бы, какая защита сработала.
Возможности
- Проверка типа каждого аргумента
- Ведро токенов на игрока, настраиваемая частота
- Семь готовых проверок, комбинируются между собой
- Отклонение без обратной связи атакующему
- Строгая типизация Luau
В комплекте
- RemoteGuard.luau - модуль
- README.md - установка, таблица проверок, ограничения