2010-02-15 11 views
5

W mojej grze JavaScript (zrobionej z jQuery) mam pozycję gracza przechowywaną w bazie danych. Kiedy postać się porusza, po prostu wysyłam prośbę o konkretny adres URL, I.E. mysite.com/map/x1/y3 (gdzie pozycja postaci to x = 1, y = 3).Bezpieczeństwo ajax w grach javascript

Ten adres URL wysyła współrzędne do bazy danych i sprawdza, czy inni gracze są blisko naszego. Jeśli tak, wysyła również obiekt JSON z nazwą i współrzędnymi tych graczy.

Oto moje pytanie - jak to zabezpieczyć? Ktoś mógłby zajrzeć do mojego kodu JavaScript i przygotować adres URL wyglądający jak mysite.com/map/x100/y234 i "teleportuje" go na inną stronę mapy.

+0

to, o co prosisz, jest całkowicie i całkowicie niemożliwe. – rook

Odpowiedz

0

Można zaciemnić swój kod źródłowy javascript. To przynajmniej odstraszy przypadkowe kody, jednak prawdopodobnie nie da się go całkowicie zabezpieczyć za pomocą javascript.

+0

Nie ma czegoś takiego jak bezpieczeństwo choć zapomnienie. Aby zaatakować ten system, użyłbym tamperdata, nie obchodzi mnie, jak wygląda skrypt. – rook

8

Wszelkie dane/obliczenia przetwarzane w JavaScript w przeglądarce będą niepewne, ponieważ cały kod działa na komputerze lokalnym. Polecam listę wszystkich parametrów krytycznych dla uczciwego doświadczenia gry, takich jak pozycja gracza, wynik, zasoby ... i obliczenie zarządzania tymi parametrami po stronie serwera. Użytkownik zbierałby tylko dane wejściowe użytkownika z przeglądarki i wysyłał zaktualizowany stan do przeglądarki w celu wyświetlenia.

Nawet jeśli zdecydujesz się obliczyć niektóre wartości po stronie przeglądarki, aby uniknąć opóźnień, nie powinieneś brać ich pod uwagę dla stanu globalnego współdzielonego przez graczy, i powinieneś ponownie zsynchronizować stan lokalny ze stanem globalnym - zawsze w kierunek globalny na lokalny - od czasu do czasu.

Podobnie jak w przypadku typowej obsługi formularzy, należy również sprawdzić, czy wartości wysyłane przez przeglądarkę w przypadku danych wprowadzanych przez użytkownika znajdują się w rozsądnych granicach, np. ruch względny w ciągu jednej sekundy jest mniejszy niż pewna odległość.

+0

+1 Dobra rada! –