![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 4.09.2003 Skąd: z Gdyni Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Pochylam się od jakiegoś czasu nad pewnym problemem natury bezpieczeństwa aplikacji. Mam do napisania grę w statki i jeden z trybów zakłada rozgrywkę hot-seat, czyli 2 graczy na jednym komputerze. Wygląda to tak, że jeden gracz odgrywa swoją turę, pokazuje się plansza, że teraz następuje tura gracza drugiego i prośba o wpisanie jego hasła (ustawionego tylko na czas rozgrywki), gra swoją turę, pokazuje się plansza do wpisania hasła dla drugiego gracza itd. Grywalność takiego rozwiązania jest pomijalna. =p Całość chciałbym rozwiązać, wykonując jak najmniej odświeżeń strony, czyli pytać o ruchy i trafienia serwer asynchronicznie (JSON przesyłany AJAXem). Problem mam tylko jeden - możliwość oszustwa w grze i 'podejżenie' hasła oraz układu statków gracza drugiego, poprzez monit zapytań (np. w konsoli firebuga). Czy istnieje jakiś sposób na bezpieczny (tj. niemożliwy lub znacznie utrudniony) przesył takich danych, zakładając, że gracze mają do dyspozycji tylko przeglądarkę (SSH, sniffery i takie sprawy mnie nie interesują)? Są zatem dwa problemy: 1. Wysyłanie hasła do serwera i sprawdzanie jego poprawności - myślałem nad SHA w JS (+sól w postaci np. czasu unixowego) i wysłanie zashaszowanego hasła, ale to można łatwo sobie wyczytać z kodu i 'przełamać'. 2. Odebranie danych z serwera, zawierających pozycje statków gracza. Jedyny pomysł jaki mam to możliwość 'wyczyszczenia' pamięci operacji połączeń asynchronicznych, tylko nie wiem, czy istnieje pewny sposób dla różnych przeglądarek (załóżmy tylko te nowoczesne + IE10 =p) albo inne podejście do problemu, czy jestem zmuszony jednak co turę refreshować zawartość strony? Ten post edytował Shlizer 29.10.2013, 23:06:23 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 09:02 |