Dodałem szybką / brudną tabelę najlepszych wyników do mojego projektu jakiś czas temu i nie będąc w ogóle zaznajomionym z bezpieczeństwem internetowym itp. Okazało się, że jest to wada. Zaskakujące jest to, że z prawie 1 200 000 zarejestrowanych wyników, miałem tylko 5 lub 6 razy serię rażąco niepoprawnych wyników, które osiągnęły szczyt tabeli. Większość wyników wyglądała nawet bardziej na usterkę w grze niż na prawdziwe „hakowanie”.
Myślę więc, że ważną kwestią jest: upewnij się, że system punktacji twojej gry jest szczelny , lub przynajmniej wykonaj kilka naprawdę dobrych testów wykonalności; teraz ta gra, o której mówię, była postem Ludum Dare 48 godzin, więc nie była to najbardziej stabilna rzecz w okolicy ... ale ogólnie myślę, że bardziej prawdopodobne jest, że przypadkowy gracz odkryje / wykorzysta usterkę w grze niż gdy ktoś bezpośrednio „zhakuje” tabelę wyników.
To powiedziawszy, pracuję teraz nad przepisaniem tego projektu i idę na całość z zaciemnianiem. Nie będę wchodził w zbyt wiele szczegółów, ale w zasadzie wszystkie wyniki przesyłają kluczową wartość opartą na zbiorze losowych wartości i wartości mieszania i magicznego ciągu znaków, a następnie każdy wynik, który przejdzie ten test i jest wystarczająco wysoki, aby rzeczywista wartość „ Tabela liderów Top X ”musi przejść kolejną rundę sprawdzania poprawności (tym razem z wygasającą wartością klucza wygenerowaną po stronie serwera i dokładniejszymi kontrolami wykonalności).
Radziłbym również użyć jakiegoś narzędzia do śledzenia pakietów, aby sprawdzić, jakie rzeczy są widoczne (pierwotnie robiłem znacznie prostszą weryfikację, co oznaczało, że ktoś mógł użyć narzędzia do śledzenia pakietów, aby znaleźć i zduplikować żądanie HTTP przesłanego wyniku, bez wiedzy magiczny ciąg znaków lub cokolwiek innego (oznaczało to, że najpierw potrzebowałeś wiarygodnego wyniku, ale możesz wysłać duplikaty tego wyniku, ile chcesz ...)). Użyłem Wireshark do przetestowania tego.
Huh, okazało się to trochę długie, ale mam nadzieję, że to pomaga ...