Estoy trabajando en una aplicación phonegap para Android/iOS.
Si entiendo correctamente, si alguien abre un paquete de aplicación de fajo de teléfono, puede simplemente copiar el html/js/css en una aplicación de faja de teléfono propia. Eso es algo que me gustaría hacer más difícil.
Mi aplicación funciona sin la necesidad de una conexión a Internet activa, y me gustaría mantenerlo así.
La mejor solución que puedo pensar es almacenar (partes de) los (40) archivos HTML en variables nativas Java/ObjectiveC y recuperarlos usando javascript y un plugin de Phonegap personalizado. De esta manera, el HTML se cifrará también al crear la aplicación.
¿Es esta una solución viable o una pérdida de tiempo?phonegap copy-protection
Respuesta
Si algo es lo suficientemente valioso para valer la pena proteger el acceso de las personas también (por ejemplo, detalles de autenticación), colocarlo en algún código compilado que tengan no es lo suficientemente seguro.
De lo contrario, ¿qué tienes en el HTML, Javascript y CSS que es tan valioso? No puede ser el código en sí mismo, porque si no pueden copiarlo, pueden simplemente mirarlo, decir "oh, esa es una buena idea" y copiar la idea sin mirar el código. Las buenas ideas son más valiosas que las líneas de código, y no puedes ocultarlas, de esta manera. En este caso, has hecho la vida más difícil para ti en mayor medida que lo has hecho más difícil para ellos.
Esta es una de mis respuestas favoritas del grupo de Google PhoneGap por Kerri Shotts. Me gusta porque encapsula mis pensamientos sobre el tema, pero lo hace de manera más elocuente de lo que pude:
Realmente no. Sí, puedes ofuscarlo, pero podría descifrarlo. Puede encriptarlo, pero eso significa que la clave está en su código en alguna parte, que significa que también puedo descifrarlo. Una vez que tenga el dispositivo y sus bits, I puedo hacer lo que quiera con ellos.
Recuerde: el dispositivo y el sistema operativo no están ahí para proteger la aplicación de sus usuarios . Está ahí para proteger a tus usuarios de tu aplicación. Totalmente lado diferente a la seguridad.
Tenga en cuenta que esto es en gran parte cierto para las aplicaciones nativas. Dame un programa ObjC de Java o y también puedo resolver lo que hace con la suficiente facilidad. Además, en la mayoría de las plataformas, todos los recursos gráficos son solo archivos regulares, lo que significa que se copian fácilmente.
Es por eso que hay tantas aplicaciones pirateadas/clonadas por ahí. Y finalmente, mientras tenga los bits para su software, hay nada que pueda hacer al respecto. Todo lo que puede hacer es "hacerlo más difícil" para el usuario y ese nivel de "dureza" es proporcional (si no es exponencial) al esfuerzo requerido para hacerlo "más difícil" para el usuario. Es decir, si lo hace para que el 90% de los usuarios no puedan descifrar el sistema, tiene un nivel de dificultad para reforzar la aplicación; para luego hacerlo para que el 99% no pueda crackear, requiere un salto significativo en la dificultad de programación .
Puede, por supuesto, crear rutinas de desencriptación sobre la marcha en el código nativo que lee una carpeta www/encriptada. Si desea hacer eso, vaya al adelante. (Un hacker aún puede evitarlo. Hay/siempre/un camino.) ¿Estoy dispuesto a llegar tan lejos? Nop.No vale la pena mi tiempo o esfuerzo, especialmente cuando no me protegerá de los que realmente están interesados en castigarme. [Otro problema: ¿PG debería hacer esto? NO. Solo un experto en seguridad, y la mayoría de los desarrolladores no.]
¿Tengo una opinión pesimista sobre la seguridad? Sí. Si distribuye los bits , pierde la seguridad. Por lo tanto, si necesita que el funcionamiento de la aplicación sea muy seguro, esos dispositivos deberían estar fuera del dispositivo en un servidor muy seguro en algún lugar detrás de varios cortafuegos muy seguros con bondad-sabe cuánta seguridad hay para asegurarse de que nadie podría adivinar cómo la aplicación incluso se está autenticando en este servidor.
Digo todo esto simplemente porque no creo que valga la pena el esfuerzo para la mayoría de las aplicaciones para preocuparse por el hecho de que la carpeta www/es visible y expuesta. Me atrevería a decir que en el 99,99% de las aplicaciones esto es cierto. A menos que esté trabajando en el cuidado de la salud (y registrando información confidencial de ) o en el gobierno o la banca (con bancos reales), no necesita preocuparse por el . Y si lo es, ¿debería usar PG? Además, ¿debería incluso estar en el dispositivo móvil? Mejor en mi opinión es que es una aplicación web que tiene muy poco código de cliente y es esencialmente una caja negra.
Gracias Simon. Creo que debería aprender a dejar de preocuparme (y amar la bomba) – Kanarie
- 1. Socket.io + PhoneGap
- 2. Sencha + PhoneGap
- 3. Phonegap Geolocation Error: timeout
- 4. PhoneGap no funciona
- 5. iOS PhoneGap debug Workflow
- 6. androide/PhoneGap rendimiento
- 7. Phonegap Barcode Scanner
- 8. Phonegap GPS sin internet
- 9. Phonegap y prompt()
- 10. PhoneGap vs. Titanium
- 11. PhoneGap y OAuth2
- 12. Javascript depurador para PhoneGap
- 13. PhoneGap XML Parser?
- 14. ¿Cuánto se utiliza PhoneGap?
- 15. Cordova/Phonegap ORM?
- 16. Android: PhoneGap vs Webview
- 17. Display PhoneGap and Retina
- 18. PhoneGap o JqueryMobile?
- 19. phonegap jquerymobile sessions
- 20. PhoneGap - Forcing Landscape orientation
- 21. Objective-C vs PhoneGap
- 22. IPhone phonegap pdf issue
- 23. AlarmManager con phonegap
- 24. Phonegap Android AlarmManager plugin?
- 25. Capturar cámara frontal - ¿Phonegap?
- 26. Phonegap local storage
- 27. PhoneGap iOS app notablemente lento?
- 28. ¿Puedo usar php con phonegap?
- 29. Acceder a archivos usando Phonegap
- 30. HTML 5 geolocalización usando phoneGap
En esta aplicación, creo que el html es la parte más importante. Es una serie de ejercicios de lenguaje, donde las preguntas, las respuestas correctas y los comentarios se almacenan dentro del html, y la funcionalidad es bastante simple. Y tienes razón, no quisiera hacer mi vida más difícil que la de ellos. Como soy nuevo en este tipo de problemas, me preguntaba si se podría hacer algo sin demasiada molestia. Pareces sugerir que la "molestia" en mi solución se escribiría con una H mayúscula ... Pero cuidado, no estoy buscando una solución segura definitiva. – Kanarie
Tal vez haga algo como tener las respuestas correctas en el javascript como '" \ u0041 \ u0042 \ u0043 "' en lugar de '" ABC "' o en el HTML como '" A B C "'. Eso solo retrasaría a una persona con conocimientos de código por menos de un minuto, pero detendría a un chico con menos conocimiento del código que trata de escabullirse "al final del libro", por así decirlo. –
Gracias Jon, eso sería bueno si estuviera interesado en dificultar que alguien obtenga las respuestas correctas. Sin embargo, mi interés principal es encontrar la manera de dificultar que otra persona simplemente copie el contenido html/js/css en otra aplicación phonegap. Cuanto más leo sobre él, más parece que la mejor solución es no hacer nada o hacer todo y configurar una base de datos y cargar datos cifrados desde allí. – Kanarie