W bazie zapisywane są tylko kluczowe informacje. Takie jak właśnie dane postaci usera. A sama gra przetwarza ich o wiele więcej. Jeżeli mamy bardzo dynamiczną grę onlinę, np. jakiegoś FPSa, to gracze cały czas wysyłają dane na serwer - o swojej pozycji, akcji jaką wykonują (np. poruszanie się), czy też oddanych strzałach. Na tej podstawie serwer oblicza, gdzie się znajdują, pokazuje odpowiednie animacje innym graczom. Jeżeli gracz kogoś trafił, to nie wyśle POSTa z informacją: "trafiłem innego gracza w głowę i odebrałem mu 100 HP", tylko jego wiadomość do serwera będzie w tym stylu: "oddałem strzał z tej pozycji, z takiej broni, w tamtym kierunku i o takim czasie". To serwer sprawdzi czy na linii strzału, w odpowiednim momencie, znajdował się inny gracz. Jeżeli tak, wyliczy jak mocno on oberwał i wyśle taką informacje do reszty graczy. W tym przypadku komunikacja nie dobywa się poprzez protokół TCP (na postawie którego jest HTTP, a dalej REST i zapytania POST 😛 ). Gry online korzystają z innych protokołów do przesyłania pakietów. Na przykład UDP, albo nawet tworzą własne implementacje. TCP może być używane tam, gdzie nie jest potrzebna szybka wymiana danych z serwerem - jeden ruch gracza jest wykonany najwyżej co parę sekund lub w turach (karcianki, szachy). Ale o tym, co będzie wynikiem tego ruchu dalej decyduje serwer. Gracz może próbować oszukiwać, zadaniem twórcy gry jest mu te próby uniemożliwić. Sprawdzane jest czy między nim a celem, do którego strzela, nie ma np. ściany, czy jego pozycja nie zmienia się zbyt szybko, a w karciankach, czy karta której użył znajdowała się w jego puli. Możliwości jest wiele, a kreatywność twórców cheatów jest nieskończona 😛
globox99
Czy jest jakaś bezpieczna alternatywa dla zapytań POST?
Jeżeli POST jest szyfrowany i zabezpieczony parą: login, hasło, lub jakimś tokenem to jest bezpieczny. Bo nikt inny nie będzie wstanie podszyć się pod usera (albo będzie miał z tym duuży problem). To sam user, jeżeli posiada konto i może się do niego zalogować - czyli wykonywać zabezpieczone zapytania, stwarza zagrożenie. W Twoim przypadku może doinstalować sobie program, który automatycznie, z dużą prędkością będzie klikał w dane miejsce na ekranie. Przez co nabije niesamowitą liczbę punktów w krótkim czasie. Twoim zadaniem jest takie sytuacje wykrywać i odrzucać, a gracza karać 😛