Safe Events
Token de sessão em cada evento dos teus recursos, sem mexer no código.
#O que é
Com o guard instalado num recurso, cada TriggerServerEvent desse recurso leva um token de sessão. Um executor ou menu que dispare o evento de fora do script não tem o token e é bloqueado. O guard também limita o spam de eventos, recusa argumentos inválidos e protege exports.
Nota
O segredo do token não está no código: o servidor gera uma chave nova para cada jogador em cada sessão.
#Instalar o guard em todos os recursos
O FXServer não deixa um recurso escrever nos outros, por isso o guard instala-se com o servidor desligado, pelo instalador que vem com o BlackShield:
- Windows:
blackshield/tools/instalar-guard.bat(duplo clique) - Linux:
sh blackshield/tools/instalar-guard.sh
Escolhe 1) Instalar. O instalador acrescenta uma linha ao fxmanifest.lua de cada recurso e guarda uma cópia do original (fxmanifest.lua.drsbak). 2) Remover repõe tudo. Depois liga o servidor e confirma na consola:
acguard status#Modos
Começa em learn uns dias e só depois passa a enforce:
acsafe list # eventos que chegaram sem token
acsafe exempt learned # os aprendidos passam a exceção
acsafe mode enforce # bloqueia e deteta| Modo | O que faz |
|---|---|
learn | Só regista os eventos sem token |
enforce | Bloqueia e deteta ("Evento sem token") |
off | Desligado |
#Iscas
O BlackShield regista eventos-isca com nomes que os menus costumam disparar. Só monta uma isca se o recurso dono não existir e nenhum recurso do servidor usar o evento — nunca apanha um evento legítimo.