Estoy en la fase de requisitos para crear una aplicación Java EE que probablemente se ejecutará en un backend GlassFish/JBoss (no importa por ahora). I saber No debería estar pensando en la arquitectura en el momento de las necesidades, pero uno no puede evitar imaginarse cómo se unirían todos los componentes :-)Java Client .class File Protection
Estos son algunos requisitos duros y no flexibles sobre del lado del cliente:
(1) La aplicación del cliente será un cuadro Swing
(2) El cliente puede descargarse libremente, pero utilizará un modelo de suscripción (por lo que requiere un mecanismo de inicio de sesión con autenticación/autorización del lado del servidor , etc.)
(3) Sí, Java es la mejor solución de plataforma para el problema en cuestión f o por razones fuera del alcance de este post
(4) La Archivos del lado del cliente .class es necesario salvaguardar contra la descompilación
Esa última (cuarta) requisito es la base de este post.
No estoy realmente preocupado por alguien descompilando realmente y obteniendo mi código fuente: al final, son solo controles Swing impulsados por una lógica de negocios liviana.
Me preocupa una situación en la que alguien descompile mi código, lo modifique para explotarlo/atacarlo, volver a compilarlo y activarlo.
He previsto todo tipo de soluciones desagradables, pero no sabía si esto era un problema común con una solución común para los desarrolladores de Java EE. ¿Alguna idea?
¡No estoy interesado en las técnicas de "código de ofuscación"!
¡Gracias por cualquier entrada!
En realidad, no entiendo ... ¿Si la autenticación y la autorización se producen en el lado del servidor que lo que podría hacer un cliente malintencionado? – Rekin
No olvide que en un entorno de red, "el malo" puede ponerle un rastreador y averiguar qué se envía también. – Suirtimed
@Suirtmed: Lo mismo ocurre con cualquier aplicación de cliente de navegador web. La solución es simple: use la comunicación encriptada (SSL). Básicamente, no puedo encontrar ninguna razón para justificar el cifrado de código. – Rekin