Zoals eerder vermeld, is er geen 100% beveiliging mogelijk. Maar er zijn verschillende oplossingen die samen een grote veiligheid bieden.
Https
Zoals je aangeeft, is dit een belangrijk onderdeel, omdat het snuffelen voorkomt.
Sessies
Gebruik sessies en sta geen enkel verzoek toe zonder een geldige sessie (behalve de eerste, die de app moet authenticeren).
Vingerafdruk
Controleer de user-agent en stel extra http-headers in om een unieke vingerafdruk voor uw app te krijgen. (Nog steeds kon iemand snuiven, maar hij moest krul of iets dergelijks gebruiken. )
Vervagen verzoeken
Bouw uw queryreeks en pas een hash-functie toe. De server moet de omgekeerde functie implementeren. ?43adbf764Fz in plaats van ?a=1&b=2
Versleutelen
Dit gaat een stap verder. Gebruik een gedeeld geheim om een hash te berekenen. Herhaal hetzelfde op de server. Dit is al een sterke beveiliging. Om te breken, moet je je app reverse-engineeren.
Gebruik uniek gedeeld geheim
Je zegt dat het een app voor iOS is. Bij installatie wordt een uniek token gegenereerd door iOS. Laat uw app dit token registreren bij uw server. Op deze manier heb je een sterk gedeeld geheim dat uniek is voor elke installatie en is er geen manier om je web-app te hacken.