Bezpieczne połączenie - nadajnik-odbiornik

0

Witam,
może temat za dużo nie mówi, ale zacząłem się zastanawiać nad słusznym podejściem do tak prostej rzeczy jak aktualizacja po stronie Klienta. Olewamy język - to tylko czysta teoria.

Założenie jest takie: mój Klient posiada oprogramowanie, które ma możliwość sprawdzania i pobierania aktualizacji, ale tylko dla zalogowanych (specjalnie podałem ten warunek).

Oczywiście można to zrobić w najprostszy sposób, czyli komunikuję się z jakąś stroną www i przesyłam dane poprzez POST lub GET, i ta strona sama aktualizuje u mnie plik. Niestety to rozwiązanie jest złe, ponieważ mogę narazić się na atak na mój serwer (jak coś źle napiszę to mają drogę wolną).

Stąd pomyślałem, że musi to działać na zasadach nadajnik-odbiornik, czyli tak jak klient-serwer z gniazdami. I teraz są różne rozwiązania. Są sockety, SOAP, REST i inne cudeńka i co wybrać do takiej pracy?

Od razu dodam, że obecnie mam serwer FTP na home.pl ale jest coś takiego jak WebSocket, więc rozumiem że ich serwery są czynne 24h/7 ??

Wracając do sprawy. W jaki sposób najlepiej zrobić połączenie do wspomnianej powyżej kwestii? Chyba REST daje największe możliwości i jest dość bezpieczną formą. Tym bardziej, że mogę chyba wysłać zapytanie jako GET lub POST.

0

REST jest przez http więc haczy o POST i GET. Nie wiem gdzie widzisz różnicę pomiędzy niebezpiecznym getem, a bezpiecznym pobraniem po REST.

HTTPS szyfruje, dodajesz uwierzytelnianie i masz.

0

sprecyzuj co to jest ale tylko dla zalogowanych - gdzie zalogowanych, jakich zalogowanych??

BTW jeśli coś jest w sieci z dostępem publicznym to jeśli jest tego warte to ktoś będzie próbował się do tego dobrać.

0

Dla zalogowanych - chodzi o to, że będą pobierane dane po stronie serwera i sprawdzane.

Myślałem o takim działaniu jakby były 2 porty po stronie Klienta i 2 po stronie serwera. Jeden nazywamy nadajnikiem, a drugi odbiornikiem. I teraz nadajnik (klient) wysyła dane do odbiornika (serwer), odbiornik przetwarza dane i nadajnik (serwer) zwraca informacje do odbiornika (klient).

Chciałbym po prostu przesyłać zaszyfrowane dane, tak by nikt nie mógł dostać się na serwer i pobrać dane Klientów.

P.S. Czyli REST mogę używać na serwerach home.pl?

0

Standardowy rest jest po http więc o ile home to zapewnia to możesz go użyć.

A teraz spójrzmy na prosty przykład. Mamy serwer i połączenie po https wiec wszystko jest szyfrowane.

Przypadek A. Klient znany:

  • Klient wysyła GET /updates z nagłowikem basic auth z poprawnymi danymi.
  • Serwer sprawdza dane logowania iiiii jest! To swój chłop. Masz tu 200 i dane do aktualizacji.

Przypadek B. Klient nieznany:

  • Klient wysyła GET /updates z nagłowikem basic auth z złymi danymi lub bez nagłówka.
  • Serwer sprawdza dane logowania iiiii nie ma! Sorry, nie znam cię albo nie masz uprawnień. Masz tu 401 lub 403 i wróć jak będziesz od nas.

Prosty przykład, w pełni działający i bezpieczny a do tego nie wynajduje koła na nowo.

0

Dzięki wielkie :)

Teraz zostało tylko... nauczyć się REST'a :D A swoją drogą mogę zrobić w c# program po stronie Klienta, a w PHP to co będzie po stronie serwera? Chyba tak?

0

Możesz napisać klienta na amidze w assemblerze :). REST nie jest zależny od technologii.

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