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.
- ¿Puedes enumerar los teléfonos en los que mantener el Bluetooth encendido no causa que se agote la batería?
- ¿Cuándo se lanzó iOS 7?
- Para aprender Swift para el desarrollo de aplicaciones iOS, ¿necesito Swift Playgrounds?
- ¿Por qué AirDrop es tan lento?
- ¿Cuáles son los mejores usos de iBeacon?
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.