Jak wspomniano wcześniej, nie ma 100% bezpieczeństwa. Ale istnieje kilka rozwiązań, które razem dają duże bezpieczeństwo.
Https
Jak podkreślasz, jest to ważna część, ponieważ zapobiega wąchaniu.
Sesje
Używaj sesji i nie zezwalaj na żadne żądania bez ważnej sesji (z wyjątkiem pierwszego, które musi uwierzytelnić aplikację).
Odcisk palca
Sprawdź klienta użytkownika i ustaw dodatkowe nagłówki http, aby uzyskać odcisk palca unikalny dla Twojej aplikacji. (Wciąż ktoś mógł powąchać, ale musiał użyć curl itp.)
Zaciemniaj żądania
Zbuduj ciąg zapytania i zastosuj funkcję skrótu. Serwer musi zaimplementować funkcję reverse. ?43adbf764Fz zamiast ?a=1&b=2
Zaszyfruj
To idzie o krok dalej. Użyj wspólnego hasła, aby obliczyć skrót. Na serwerze powtórz to samo. To już jest silne zabezpieczenie. Aby się zepsuć, trzeba przeprowadzić inżynierię wsteczną aplikacji.
Użyj unikalnego udostępnionego klucza tajnego
Mówisz, że to aplikacja na iOS. Po instalacji unikalny token jest generowany przez iOS. Niech Twoja aplikacja zarejestruje ten token na serwerze. W ten sposób masz silny wspólny sekret unikalny dla każdej instalacji i nie byłoby możliwości zhakowania Twojej aplikacji internetowej.