C# - Serwer + Klienci

0

Witam. Aktualnie chcę rozpocząć pracę nad stworzeniem aplikacji, gdzie użytkownicy łączą się z serwerem i mogą miedzy sobą grać - nie wiem jeszcze jaka to będzie gra, ale chodzi mi tutaj głównie o wyuczenie się tworzenia bezpiecznych metod. Najbardziej zależy mi na doświadczeniu, które da mi zmaganie się z najtrudniejszą częścią tego projektu - bezpieczeństwo.

Chcę nauczyć się sposobów, które w skuteczny sposób zablokują możliwość manipulacji grą/wynikami/bazą danych. O ile mi wiadomo, nie ma 100% zabezpieczenia.

Moje pytanie jest takie - od czego zacząć, jak programować komunikacje klient - serwer, żeby wszystko było bezpieczne i nie do zmanipulowania? Z góry dziękuję za rady.

0

po pierwsze komunikacja musi byc zabezpieczona przez szyfrowanie, czyli np. laczenie po ssl oraz sama wiadomosc moze byc podpisana i zaszyfrowana
warto tez miec autentykacje oraz autoryzacje, a takze mechanizmy, za pomoca, ktorych bedziesz mogl odpowiedziec sobie czy dany user mial prawo wyslac dana wiadomosc
jesli maja to byc gry turowe z pewnoscia WCF rozwiaze twoje problemy, tzn. ma on juz wbudowane mechanizmy autentykacji, autoryzacji, szyfrowania transmisji i/lub wiadomosci oraz podpisywania wiadomosci
jednak jesli chcesz pisac gry typu "hack and slash", rts, etc. generalnie gdzie w czasie rzeczywistym userzy wykonuja operacje, to pomimo ze WCF jest calkiem wydajny, to pewnie i tak bedziesz musial zejsc nizej do poziomu socketow i przesylac dane binarnie
w WCF domyslnie wiadomosci lataja jako wiadomosci SOAP, wiec xml (jesli komunikacja miedzy dwoma elementami WCF to xml jest kompresowany, tzn. uzywana jest postac binarna), ale da sie przy odrobinie customizacji to zmienic
poza tym bedziesz potrzebowal komunikacji dwustronnej, user wysyla do serwera komunikaty, ale takze serwer wysyla do innych graczy informacji o poczynaniach innych

0

Dzięki massther za rozjaśnienie światła w tunelu ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1