Questa sezione presuppone che tu abbia già convalidato gli input e il contesto (vedi le sezioni precedenti). Questo articolo tratta cosa fare dopo che una richiesta è tecnicamente valida ma il comportamento sembra abusivo, oltre a come rispondere senza danneggiare i giocatori legittimi.
Filosofia
- Il server decide. Il rilevamento e le conseguenze avvengono sul server. Cerca di non bannare mai basandoti su rilevamenti lato client, poiché gli sfruttatori possono facilmente eluderli.
- Prevenire il danno prima. Neutralizza silenziosamente l'impatto di un exploit. Ad esempio, se un giocatore sta usando un hack di velocità, riportalo semplicemente alla sua ultima posizione valida invece di espellerlo immediatamente. Punisci solo quando necessario per proteggere il gioco o altri giocatori.
- Essere proporzionali e reversibili. Assumi che possano verificarsi falsi positivi. Preferisci azioni che puoi annullare, come sospensioni temporanee o rimozione di risorse, rispetto a ban permanenti.
- Progettazione > rilevamento. La tua sicurezza principale deriva da una robusta convalida e limitazione della velocità (trattato in Sicurezza del confine client-server e altre sezioni). I metodi di rilevamento qui sotto sono destinati a integrare quelle difese, non a sostituirle.
Euristiche
Le euristiche sono controlli comportamentali che segnalano azioni che sono tecnicamente possibili ma altamente improbabili per un giocatore legittimo. Sono "regole empiriche" per catturare attività sospette che sfuggono alla convalida di base. Un'euristica efficace confronta l'azione di un giocatore con un massimo teorico o una baseline ragionevole.
Ad esempio, se un giocatore afferma improvvisamente di aver guadagnato 1 miliardo di monete nel tuo gioco simulatore, la tua convalida remota potrebbe confermare che la richiesta è strutturata correttamente. Ma un controllo euristico sul server saprebbe che guadagnare così tanto dovrebbe richiedere settimane, non secondi, e segnerebbe la transazione come sospetta.
Ecco tre esempi classici di euristiche lato server. Ognuna di esse convalida il comportamento del giocatore rispetto alle regole e alle limitazioni fisiche del gioco, creando una forte difesa contro exploit comuni.
| Euristica lato server | Descrizione | Esempio |
|---|---|---|
| Tempo di completamento più veloce | Calcola il tempo teorico più veloce possibile per completare un compito, come un percorso ad ostacoli. Questo comporta trovare il percorso ottimale e assumere la massima velocità del giocatore. | In un obby, se il record mondiale è di 30 secondi, un tempo di completamento di 5 secondi è un forte segnale di teletrasporto o exploit di velocità. |
| Tasso di guadagno | Monitora il tasso massimo legittimo con cui un giocatore può guadagnare una risorsa (moneta, esperienza, oggetti). | Se un giocatore può guadagnare legittimamente 100 monete al minuto, un guadagno improvviso di 10.000 monete in un secondo dovrebbe essere segnalato. |
| Cadenza delle azioni | Il server analizza gli intervalli di tempo tra le azioni ripetute di un giocatore. Gli input umani hanno variazioni naturali e lievi nel timing, mentre gli script di automazione semplici (come gli auto-clicker) spesso eseguono azioni con una coerenza robotica. | In un minigioco di pesca, un giocatore clicca per lanciare la sua lenza. Il server registra il timestamp di ogni lancio. Se il giocatore lancia la sua lenza 100 volte di seguito con lo stesso intervallo esatto (ad esempio, esattamente 2,500 secondi) tra ogni azione, è un forte indicatore di un macro o bot. Il timing di un umano fluttuerebbe naturalmente. |
Ognuno di questi esempi potrebbe non essere sufficiente da solo per condannare un imbroglione. Ognuno dovrebbe essere trattato come un segnale, non come una prova definitiva. Una buona pratica è implementare un punteggio di sospetto. Quando un giocatore fallisce un controllo euristico, incrementi il loro punteggio. Azioni severe come espulsioni o ban dovrebbero avvenire solo dopo che più rilevamenti variati hanno spinto il punteggio di un giocatore oltre una soglia alta.
Ad esempio, supponiamo che un giocatore esperto finisca il tuo obby con un tempo record, attivando la tua euristica "Tempo di completamento più veloce". Dovrebbero essere bannati? È possibile che stiano sfruttando, ma potrebbero anche aver scoperto un percorso legittimo ma non intenzionale. Bannare basandosi su questo singolo segnale sarebbe rischioso e potrebbe punire uno dei tuoi giocatori più dedicati.
Tuttavia, se la corsa dello stesso giocatore ha anche attivato l'euristica "Cadenza delle azioni" per input inumani coerenti, e un'ora dopo attivano l'euristica "Tasso di guadagno" nel tuo lobby, il caso diventa molto più forte. La combinazione di questi diversi segnali dipinge un quadro molto più affidabile di imbroglio. La forza di questo sistema risiede nel correlare più punti dati per costruire un caso sicuro prima di intraprendere azioni.
Honeypots
Un modo per rilevare gli imbroglioni che cercano di sondare gli RemoteEvents del tuo gioco è utilizzare un'esca chiamata honeypot. Un honeypot è un RemoteEvent o RemoteFunction che appare legittimo per un sfruttatore ma non è mai utilizzato da nessuno dei tuoi script client legittimi. Poiché nessun giocatore normale dovrebbe mai essere in grado di attivare questo remoto, qualsiasi traffico che riceve deve provenire da un sfruttatore. Quando il server rileva questo remoto attivato, è un segnale di alta fiducia che il client sta interferendo. La migliore azione immediata è registrare l'incidente ed espellere il giocatore dalla sessione.
Un'altra variazione è progettare RemoteEvents con scopi direzionali specifici - alcuni esclusivamente per la comunicazione client → server e altri esclusivamente per la comunicazione server → client. Anche se i nomi degli eventi non rivelano la loro direzione prevista, il server tiene traccia di quale direzione ciascun remoto dovrebbe essere utilizzato. Se un sfruttatore tenta di attivare un remoto server → client dal client, questo serve come un metodo di rilevamento affidabile poiché il gameplay legittimo non attiverebbe mai comunicazioni nella direzione sbagliata.
Applicare conseguenze
Quando i sistemi di rilevamento segnalano comportamenti sospetti, considera attentamente la tua strategia di risposta. Giochi diversi richiedono approcci diversi in base alla loro comunità, alle scommesse competitive e alla tolleranza per le interruzioni.
La scala delle conseguenze - La maggior parte dei giochi beneficia di risposte in escalation piuttosto che passare direttamente a ban permanenti:
- Registrazione silenziosa - Costruisci prove senza impatto sul giocatore
- Mitigazione silenziosa - Blocca l'effetto dell'exploit (elimina richieste, limita valori, sincronizza stato corretto)
- Restrizioni temporanee - Limita capacità specifiche (scambi, classifiche, matchmaking)
- Applicazione visibile - Espulsioni, sospensioni temporanee o ban permanenti
Considerazioni per la tua strategia
- Ritarda le conseguenze visibili per evitare di insegnare agli sfruttatori esattamente cosa ha attivato il rilevamento
- Abbina la gravità alla risposta - exploit economici minori possono richiedere un trattamento diverso rispetto a cheat fisici che rompono il gioco
- Considera la tua comunità - i giochi competitivi potrebbero necessitare di un'applicazione più rigorosa rispetto ai giochi casual
- Pianifica per gli errori - preferisci azioni reversibili quando la fiducia nel rilevamento è più bassa
Per i trasgressori persistenti, considera di utilizzare l'API Ban piuttosto che fare affidamento esclusivamente sulle espulsioni. L'API Ban impedisce ai giocatori bannati di rientrare e fornisce un tracciamento migliore attraverso il tuo universo. Versiona le tue regole di rilevamento e monitora i tassi di conseguenze in modo da poter identificare sistemi problematici. Monitora il feedback dei giocatori per valutare se la tua applicazione sembra equa per la comunità. Il giusto equilibrio dipende interamente dalle esigenze del tuo gioco e dalle aspettative dei tuoi giocatori.