Como se dijo antes, no hay 100% de seguridad posible. Pero existen varias soluciones que juntas dan una gran seguridad.
Https
Como bien apuntas, esta es una parte importante, ya que evita el olfateo.
Sesiones
Usa sesiones y no permitas ninguna solicitud sin una sesión válida (excepto la primera, que debe autenticar la aplicación).
Huella dactilar
Verifique el agente de usuario y configure encabezados http adicionales para obtener una huella digital única para su aplicación. (Todavía alguien podría olfatear, pero necesitaba usar curl o similar).
Ofuscar solicitudes
Cree su cadena de consulta y aplique una función hash. El servidor necesita implementar la función inversa. ?43adbf764Fz en lugar de ?a=1&b=2
Cifrar
Esto va un paso más allá. Use un secreto compartido para calcular un hash. En el servidor repite lo mismo. Esto ya es seguridad fuerte. Para romper, uno necesita aplicar ingeniería inversa a su aplicación.
Usar secreto compartido único
Dices que es una aplicación para iOS. Tras la instalación, iOS genera un token único. Haga que su aplicación registre este token con su servidor. De esta manera, tiene un fuerte secreto compartido único para cada instalación, y no habría forma de piratear su aplicación web.