Udostępniam kilka metod REST na serwerze dla aplikacji mobilnej.
Chciałbym uniknąć, aby użytkownicy mogli wąchać, w jaki sposób budowane są metody HTTP (z aplikacji mobilnej), a następnie wysyłać je ponownie na serwer. Przykład:
- Aplikacja mobilna wysyła zapytanie
- Użytkownik korzysta z serwera proxy i może sprawdzić, co dzieje się w sieci
- Użytkownik widzi i zapisuje żądanie, które właśnie wysłał telefon
- => Teraz nie chcę, aby użytkownik mógł ręcznie przesłać to żądanie
Czy wystarczy zabezpieczyć serwer przez HTTPS?
HTTPS oznacza po prostu, że transportowane dane są szyfrowane, więc tylko klient i serwer mogą je odszyfrować (w idealnym świecie, nie mówiąc o atakach MITM itp.).
W związku z tym nic w protokole nie powstrzyma powtarzających się ataków.
Konieczne będzie wbudowanie mechanizmu unikania ataków typu „powtórz” (coś w rodzaju tokenów wygasających lub tokenów, które unieważniają się po zakończeniu procesu), aby upewnić się, że aplikacja nie jest narażona na ataki typu „powtórzenie”. Tego mechanizmu można używać z normalnym HTTP.
źródło