Grundlegende Designentscheidungen können als "erste Sicherheitsmaßnahmen" dienen, um Ausnutzungen abzuschrecken. Das Kernprinzip besteht darin, Systeme zu entwerfen, bei denen Betrug entweder unmöglich ist oder keinen bedeutenden Vorteil bietet, anstatt zu versuchen, Betrug nachträglich zu erkennen und zu verhindern.
Betrachten Sie ein Shooter-Spiel, in dem Spieler Punkte für Kills verdienen. Ein Ausnutzer könnte Bots erstellen, die an denselben Ort teleportieren, um wiederholt getötet zu werden, um einfach Punkte zu sammeln. Dieses Szenario veranschaulicht den Unterschied zwischen reaktiven und defensiven Ansätzen:
| Ansatz | Vorhersehbares Ergebnis |
|---|---|
| Verfolgen Sie Bots, indem Sie Code schreiben, der versucht, sie zu erkennen (reaktiver Ansatz). | |
| Punktgewinne für Kills bei neu erschienenen Spielern reduzieren oder ganz entfernen (defensiver Ansatz). |
Zusätzliche defensive Design-Szenarien:
| Potenzielle Ausnutzungsszenarien | Reaktiver Ansatz (weniger effektiv) | Defensiver Ansatz (effektiver) |
|---|---|---|
| (Obby) Ausnutzer teleportiert sich ans Ende, um Belohnungen zu beanspruchen | Überprüfen Sie nur die endgültige Position des Spielers und versuchen Sie, unmögliche Abschlusszeiten zu erkennen | Gestalten Sie mit zwingenden, sequentiellen Kontrollpunkten. Der Server validiert, dass jeder Kontrollpunkt in der richtigen Reihenfolge aktiviert wurde, bevor Belohnungen gewährt werden. Sie können eine weitere Schicht hinzufügen, indem Sie Spieler kennzeichnen, die die Stufen schneller als menschlich möglich abschließen. Das Design des Erlebnisses (das Kontrollpunkte erfordert) ermöglicht die effektive serverseitige Validierung. |
| (Kampf) Client meldet, dass unmögliche Schadensbeträge verursacht werden | Versuchen Sie, unmögliche Schadenswerte zu erkennen und herauszufiltern | Der Server berechnet allen Schaden anhand serverseitiger Waffenstatistiken und validiert Treffer durch serverseitiges Raycasting |
| (Wirtschaft) Ausnutzer dupliziert Gegenstände durch schnelle Anfragen | Versuchen Sie, doppelte Anfragen oder ungewöhnliche Muster zu erkennen | Implementieren Sie serverseitige Abkühlzeiten und validieren Sie alle Transaktionen gegen den aktuellen Spielerinventarstatus |