¿Qué tipo de pruebas se deben hacer en iOS frontend para seguridad?

Una de las mayores amenazas para la tecnología Frontend en todos los dispositivos se deriva del contenido generado por el usuario (esencialmente cualquier cosa que un usuario pueda enviar a través de un formulario u otro medio). Por ejemplo (esto es puramente hipotético), si tomamos un sitio web como Facebook, y publicaste el siguiente comentario en el muro de alguien:

‘/> Hola amigo alerta (‘ gotcha! ‘); <'

Puede parecer que solo ha publicado el mensaje Hola amigo, pero también ha incrustado una secuencia de comandos en este comentario para que cuando alguien vea este comentario, ya sea su amigo, cualquier otra persona que vea este comentario en el muro de su amigo, o incluso Si este comentario aparece en la fuente de noticias de alguien, entonces habrá una ventana emergente activada por la alerta con el texto ‘¡Gotcha!’. Este sería un ataque bastante inocente, pero uno puede imaginar una situación similar en la que el script puede robar información sobre sus amigos y perfil, publicar en algún lugar sin que el usuario se dé cuenta (con el fin de difundirse), o incluso robar sus credenciales.

En el caso de iOS, el contenido generado por el usuario aún puede ser un problema, aunque la mayoría de las veces estamos usando Objective-C en lugar de Javascript. En general, desea evitar situaciones en las que el usuario pueda hacer algo inesperado, ya sea contenido generado por el usuario en un sitio de tipo de red social o simplemente un juego aislado en el que el jugador está en contra de la computadora (nota: es posible un ataque similar al mencionado anteriormente) al cargar su nombre para tableros de HighScore e innumerables otras situaciones).

Para responder más explícitamente a su pregunta, debe intentar probar tantos casos extremos de su aplicación como sea posible y asegurarse de que se tengan en cuenta todos los estados de la aplicación. Escribir código limpio, usar las mejores prácticas y muchas pruebas unitarias son realmente buenos pasos para asegurarse de que su aplicación sea segura. También puede echar un vistazo a esta lista para ver cosas más específicas que puede hacer y evitar: IOS Application Security Testing Cheat Sheet

Para obtener ejemplos de “Pruebas de penetración” más intensas, CryptoCat es una aplicación de mensajería segura que recientemente contrató a un tercero para encontrar vulnerabilidades en su aplicación, y luego publicó los resultados aquí: Página en isecpartners.github.io

DESCARGO DE RESPONSABILIDAD: estoy bastante seguro de que Facebook escapa y desinfecta el contenido generado por los usuarios, por lo que es probable que esto no sea un problema allí, pero puede ser posible en sitios web menos protegidos.

Quizás pregunte primero cómo se manejan los datos confidenciales del usuario … ¿cómo se almacenan? ¿Utiliza encriptación o el llavero, almacena un token de acceso o sigue enviando las credenciales en cada solicitud … ¿las API están utilizando SSL? ¿Puedo forzar la página de inicio de sesión? Si uso algo como Fiddler, ¿puedo observar las llamadas de la API y descubrir cómo hackear? ¿Tiene un método para expirar la aplicación si posteriormente descubre una vulnerabilidad?
¿Usas la versión de la API? …

Si esta es una aplicación que muestra el contenido del usuario … haga que la entrada se desinfecte antes de mostrar … ¿se moderan las imágenes cargadas?