Bonjour, je voudrais savoir s'il existe un moyen de compiler les fichiers jsp sous java pour les transformer directement en .class afin de cacher le code source de la jsp en question à moins que quelqu'un a une autre idée.
Merci d'avance
Bonjour, je voudrais savoir s'il existe un moyen de compiler les fichiers jsp sous java pour les transformer directement en .class afin de cacher le code source de la jsp en question à moins que quelqu'un a une autre idée.
Merci d'avance
Les fichiers JSP sont executé "au besoin" par ton serveur, la solution à ton problème est de sortir le code de ta page JSP.
Dans la pratique, tu créés une classe avec des fonction que tu appels dans ta JSP.
Tu noteras que en général on evite de mettre du code dans les pages JSP.
Donc au final, il n'existe aucune solution pour cacher son code source jsp à l'administrateur qui s'occupe du serveur où sera stockée l'application.
Alors qu'il existe phpEncoder qui peut crypter du php et de l'asp (au niveau du serveur) et il n'y n'existe rien en java.
Quel est l'intérêt d'utiliser java pour dvp des appli web que l'on ne stocke pas sur son propre serveur???!!!!
Mon savoir étant limité, je ne connais aucune manière de faire cela, il existe peut être une solution alternative, mais l'unique manière que je connaisse c'est de mettre ton code dans un fichier .java que tu compiles en .class et que tu utilises dans tes JSP.
Sur wikipedia j'ai lu ça :
A toi de voir, je n'en sais pas plus.Les JSP sont compilées par un compilateur JSP pour devenir des servlets Java. Un compilateur JSP peut générer un servlet Java en code source Java qui peut à son tour être compilé par le compilateur Java, ou peut générer le pseudo-code Java interprétable directement. Dans les deux cas, il est bon de comprendre comment le compilateur JSP transforme la page en servlet Java. Voir l' exemple de page JSP fourni en fin d'article, avec le servlet généré et la page HTML résultante.
Lien Wikipedia
Ouais c'est aussi ce que j'avais déjà vu.
Mais quand tu exportes ton archive sous un serveur d'application il te met ton fichier toto.jsp puis quand tu l'executes i lte fait bien un fichier toto_jsp.class et un fichier toto_jsp.java mais disons que cela ne règle pas mon problème vu que l'administrateur peut changer le contenu quand il le souhaite.
Merci quand meme du coup de main, mais bon y'a quand meme une faille pour la sécurité de l'éditeur qui veut faire une appli web qu'il ne peut pas stockée chez lui!!!!!
Vous pourriez récupérer toto_jsp.java ou toto_jsp.class pour utiliser directement la servlet.
Mais par pure curiosité, pourriez-vous m'expliquer l'intérêt de cacher le code d'une jsp? Dans mes applications, celles-ci ne contiennent aucun code métier, seulement du HTML, communiqué de toute façon au navigateur WEB, et des références au code métier. Je me demande donc, dans votre cas, ce qui vous pousse à vouloir dissimuler votre code.
ce qui me pousse à cacher le code est pour la sécurité de l'editeur de logiciel que je représente.
Je m'explique. Je développe mon appli web avec jsp et servlet que je compresse en une archive WAR qui sera donnée à nos clients pour etre installé sur leur serveur.
Le problème c'est que l'administrateur aura accès au contenu de toutes mes jsp et qu'il peut les modifier, les éditer .... et notamment faire du reverse engineering , les servlets étant au moins compilé en byte code.
C'est cela que je veux éviter, que nos clients (grand groupe), mettent des informaticiens dessus pour faire leur propre appli à partir de ce que moi j'aurais fais et que dans ce cas on a plus besoin de nous.
Avez-vous compris ma démarche.
S'il ny a pas de code metier dans ta page JSP, il est IMPOSSIBLE de faire du RI...
Oui, mais je trouve ça bizarre parce qu'il n'y a typiquement aucun code de valeur dans les Jsp. Vous vous y prenez sans doute différemment, ce qui expliquerait que ce soit un problème pour vous.
Sinon, sachez qu'il est assez facile de décompiler du byte code : les noms de variables, de classe et de méthodes y figurant (contrairement au C par exemple), la décompilation permet de restituer le code d'origine, à l'exception de la mise en page et des commentaires.
Par exemple, ouvrez votre fichier WAR avec Winzip, récupérez un .class et ouvrez-le avec un décompilateur comme Jad (téléchargeable gratuitement). Vous n'allez pas du tout aimer le résultat.
Cacher vos sources aux clients va donc demander pas mal d'efforts. Je n'ai jamais étudié moi-même la question, mes clients étant systématiquement propriétaires du code que j'écris. Vous pourriez peut-être utiliser un obfuscateur de code : ils brouillent le code source au point de le rendre illisible.
Oui, il est évident qu'en règle générale il n'y a pas beaucoup de code pertinent dans une jsp. Mais admettons que l'on mette une méthode SayHello(string nom) qui retourne "bonjour+" nom et que le bonjour soit changé en ce que souhaite l'administrateur n'est pas l'idéale.
En fait je suis d'accord qu'en ce qui concerne le métier, l'administrateur n'aura pas accès directement au code.
Je sais bien que du bytecode peut etre rapidement décompiler dans une source visible mais bon, je crois que dans ces conditions plus personne n'ecrira du code et que pour proteger cela les appli wab sont stockées sur le serveur de ceux qui l'ont crée.
J'ai déjà essayé la notion d'obfuscateur mais cela ne marchait pas correctement en ce qui concerne les servlets.
Très souvent, la société pour laquelle tu développes une application, est propriétaire du code source, c'est pourquoi, d'après mon expérience, je n'ai jamais eu à "cacher" le code source.
euh j'ai pas tout compris.
Je suis un éditeur de logiciel qui fait des applications que je vends à des clients.
Je donne mon archive WAR(dans mon cas) à mon client qui regarde avec son admin serveur pour déployer l'application.
Donc dans ce cas de figure, l'administrateur peut accèder à une partie de mon code et le modifier voir meme faire du reverse engineering avec mon appli.
CE qui signifie la mort de l'éditeur de logiciel vu que notre client à (re)développer MON APPLI à sa sauce!!!
Donc je ne comprends pas trop l'histoire du code propriétaire si tu veux bien m'expliquer cela serait sympa
j'ai oublié de préciser que cette meme appli est "installée" chez différents clients!!!
Dans tous les cas, il faut bien savoir que même une servlet ou toute autre classe java peut être dé-assemblée (jad le fait très bien), donc, la "protection" est nulle.
Mieux vaut se baser alors sur des termes de licence, à défaut de protéger le code, on peut au moins se retourner contre le copieur...
(Et il faut peut-être éviter la paranoïa... qui perdrait son temps à dé-assembler une application ??!!)
A+
Mon post ne s'applique pas dans ton cas.
Je pensais plutôt à une application développée par une société de services, qui fait du spécifique et qui cède dont les sources en même temps que l'application.
Pour ce qui est de "cacher" le code, je n'en sais pas plus que ce qui a déjà été dit.
C'est pour cela qu'il existe les obfuscateurs de code java pour les .class malheureusement il ne fait pas sur les JSP: dommage.
Quoi qu'il en soi, y'a des personnes qui sont payés à faire que ça dans certaines entreprises, donc si on ne veut pas mourir il faut faire le maximum pour cacher son code source à moins que l'on stocke l'appli sur son propre serveur.
c'est ce que je pensais fr1man que tu parlais bien d'une societe de service, mais dans mon cas on a beau faire signer des paperasses et tout ce qui s'en suit cela ne vaudrait pas une couche qui permettrait de cacher + ou - le code.
Merci qd meme
Dans le registre protection du code, rien ne t'empeche de faire tes propres lib .so .dll pour java (enfin arretez moi si je me trompe).
Auquel cas ton code deviens vraiment protégé.
Après, pour revenir aux pages JSP, rien ne t'empeche de faire des .jsp avec des termes très limité qui ne veulent rien dire (bon c'est sur après la lecture est très dur pour toi aussi.)
Ouais, disons qu'en obfusquant les servlets et à la limite faire que des pages HTML à la place des jsp pourraient aussi etre une solution.
Sinan une autre petite question, pour le dvp web mieux vaut utiliser J2EE (jsp/servlet) ou bien php.
C'est une appli uniquement sur Intranet avec une grosse base MySQL en fond que je cherche à dvp
Personnelement, je développe sur PHP et Java Web, à partir d'une certaine taille, je préfére utiliser Java, je trouve que c'est bien mieux "organisé" que PHP.
De plus j'ai un faible les lib/framework java, comme hibernate, spring, struts/struts2, etc...
Après le poids sur le serveur est pas le même. Java/Tomcat reste plus lourd que Apache/PHP.
Dans ton cas si tu me dis grosse BDD, je pencherais pour du Java.
Après si ce qui compte c'est la protection du code (dixit ce qui est écrit plus haut), fait des CGI C, là tu seras vraiment protégé.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager