IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

JScrambler 3 disponible
L'outil permet de protéger son code JavaScript et HTML5 avant déploiement en obfusquant celui-ci

Le , par Cedric Chevalier

31PARTAGES

5  1 
Le code source des applications JavaScript peut être lu lorsque les utilisateurs entrent en possession d’une application entièrement codée dans ce langage. Ceci constitue un réel problème pour des applications à but commercial, car JavaScript n’offre pas nativement de méthodes pour protéger le code des regards indiscrets.

JScrambler permet de contourner toutes ces difficultés en apportant la fonctionnalité d’obfuscation du code JavaScript pour les applications Web, Desktop ou mobiles.

Actuellement l’outil en est à sa version 3. Il est utile dans plusieurs cas de figure. Il permet de protéger la propriété intellectuelle. En obfusquant le code source de l’application, celui-ci ne peut être reproduit par une tierce personne.

JScrambler permet d’accroître les performances d’une application grâce à un algorithme propriétaire d’optimisation de code. Celui-ci permet de compresser efficacement le code source d’une application Web, raccourcissant ainsi son temps de chargement dans le navigateur. Il permet de renforcer la sécurité de l’application Web. L’algorithme d’obfuscation utilisé par JScrambler offre une certaine souplesse et robustesse pour faire du « code morphing ».


JScrambler est décliné en deux versions. La première est gratuite, et permet aux développeurs d’uploader leurs projets dans les serveurs distants JScrambler, où ceux-ci vont être obfusqués, puis téléchargés. La seconde étape consistera tout simplement à distribuer la version obfusquée du code source des projets uploadés. La version payante, quant à elle, permet d’exécuter une instance de JScrambler directement dans un serveur local d'une organisation.

Par ailleurs, bien que des produits similaires existent sur le marché, la solution proposée par JScrambler est complète. Elle est notamment compatible avec les bibliothèques JavaScript standard comme, Ember, Cake, Fabric, Dojo et SproutCore.

Tester JScrambler

Source : le site du projet

Et vous ?

Que pensez-vous de cet outil ?

Répond-il à toutes vos attentes en terme de protection de propriété intellectuelle en ce qui concerne le code source de vos applications ?

Utilisez-vous un outil pour dissimuler votre code JavaScript ? Lequel ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de wirenth
Membre averti https://www.developpez.com
Le 18/04/2013 à 14:56
"La première est gratuite, et permet aux développeurs d’uploader leurs projets dans les serveurs distants JScrambler, où ceux-ci vont être obfusqués, puis téléchargés."
Logique, on ne veut pas dévoiler notre source mais on l'upload sur un serveur tiers...
6  0 
Avatar de CapFlow
Membre actif https://www.developpez.com
Le 18/04/2013 à 14:29
En faite c'est soit il "optimise" en minimisant le code, soit il offusque le code et alors la il n'est pas du tout optimisé comme en s'en doute, mais plutôt le contraire (et comme dit ci-dessus, il est plus grand, et ça c'est normal puisque le but est d'offusquer).

Jugez-en par vous même :

http://jsperf.com/jscrambler

Ce sont les codes de l'exemple du site. Le premier test est celui du code normal, le second du code offusqué et le dernier celui du code minifié.

C'est seulement ce dernier qui m'a convaincu, il est presque identique au code normal en terme de "rapidité, puissance" et est illisible : ça fait largement l'affaire (contrairement au code offusqué, illisible mais très lent).

Note : En faite j'ai fait ce jsperf parce qu'à la base en lisant cette news j'avais compris offusqué + optimisé en même temps ... ça paraissait louche !
4  0 
Avatar de Watilin
Expert éminent https://www.developpez.com
Le 19/04/2013 à 15:00
Alex, tu as compris l'inverse de ce que je voulais dire. Je fais du code propre. Quand je parle de code sale, je parle évidemment du code obfusqué.

J'ai pris Flash comme exemple, mais il y a aussi Java, ou tout autre langage Web, multiplateforme et compilé ou du moins dont le code source n'est pas directement accessible (c'est-à-dire pas un script).
Il n'existe pas de protection impossible à casser. Alors je trouve ça dommage qu'une entreprise qui « mise tout » sur son application fasse passer la protection de son code avant le confort de ses clients.

De manière plus générale, je pense que la propriété intellectuelle est une affaire de droits et pas une affaire d'informatique. Je sais que la justice d'aujourd'hui est loin d'être parfaite, mais je rêve d'un avenir proche ou les entreprises ne ressentiront plus le besoin de protéger du script en utilisant des techniques qui réduisent la qualité de l'application.
1  0 
Avatar de arnogues
Membre actif https://www.developpez.com
Le 26/04/2013 à 15:00
J'ai fait une analyse sur le résultat que donne JSScrambler

D'une part, l'obfuscation divise par 15 les perfs, et pire encore
Et en plus il nous sort une soupe complètement affreuse au niveau du code, et surtout des objets avec des centaines de fonctions qui ne font qu'une ligne.
Bonjour les perfs.
Sans compter le nombre de fonctions qui se retrouvent appelées, on se retrouve avec une pile de malade !

Ensuite, on ne peut pas du tout parler d'optimisation de code, la seule chose que cet outil fait c'est simplement renommer les variables pour les rendre plus courte.
Donc au final, l'obfuscation ne sert strictement à rien, au pire pourrir les perfs de l'application.

Enfin bref, personnellement j'éviterai JS scrambler à tout prix, il n'a aucun intérêt à mes yeux, à part si vous voulez vraiment protéger votre code, mais à vos risques et périls.
Autre chose,
- le code compressé par jsscambler ne fonctionne pas sous Chrome 25
- Je ne trouve rien qui permettrait de mettre JSScrambler dans des processus de build automatique genre maven, ant, ou même un simple script batch.

Si vous voulez transformer votre appli en code illisible, il suffit de passer toute l'appli dans un seul fichier, et passer tout ça sous closureCompiler, au final, vous obtiendrez un code optimisé et minifié et comme les variables seront renommés ça laissera déjà beaucoup de temps avant de rendre l'application lisible.

Donc pour la minification et compression vous avez au choix :
- packerJS (qui compresse bien le code)
- Yui Compressor, qui a plusieurs niveaux de compression, dont celle la plus utilisée : la minification
- Closure compiler, qui anallyse votre code et apporte certaines optimisations et compresse aussi le code

Vous pouvez tester la plupart des librairies de compression ici : http://compressorrater.thruhere.net/
Et pour tester closure compiler, vous pouvez utiliser cette page :
http://closure-compiler.appspot.com/home

Il y a d'autres outils, mais jamais trop essayé, par exemple :
JSCrush : http://www.iteral.com/jscrush/
cet outil est très bourrin, mais il faut que votre code JS soit adapté à jscrush

J'ai aussi trouvé cette page qui regroupe une liste de compresseurs JS
http://qfox.nl/notes/122
1  0 
Avatar de alex_vino
Membre émérite https://www.developpez.com
Le 18/04/2013 à 14:17
Citation Envoyé par Cedric Chevalier Voir le message
JScrambler permet d’accroître les performances d’une application grâce à un algorithme propriétaire d’optimisation de code. Celui-ci permet de compresser efficacement le code source d’une application Web, raccourcissant ainsi son temps de chargement dans le navigateur.

L'imprime-écran semble contredire l'article, le code apres obfuscation est plus long, surtout que la code JavaScript initial n'est pas encore minalisé. Il y a quelque chose qur je n'ai pas du comprendre.
0  0 
Avatar de PatteDePoule
Membre éclairé https://www.developpez.com
Le 18/04/2013 à 14:25
Effectivement, moi aussi je constates qu'à première vue le code semble plus grand après!
0  0 
Avatar de alex_vino
Membre émérite https://www.developpez.com
Le 18/04/2013 à 14:36
Citation Envoyé par crf 70 Voir le message
Note : En faite j'ai fait ce jsperf parce qu'à la base en lisant cette news j'avais compris offusqué + optimisé en même temps ... ça paraissait louche !
Merci pour la précision
Pour l'optimisation il n'y a rien de nouveau, mais pour l'obfuscation les performances chutent de 10 a 15 fois, ce qui est tout de meme énorme et un frein a son adoption.
0  0 
Avatar de Lupus Michaelis
Membre du Club https://www.developpez.com
Le 18/04/2013 à 17:54
De cette absence d'obfuscation À noter que ça reste un anglicisme, qui risquera d'être à nouveau remplacé par ton correcteur orthographique.

Ceci dit, un programme C ou C++, ce n'est pas non plus obfusqué par défaut, on peut toujours décompiler, et parfois décompiler vers du C ou du C++. Le but de l'obfuscation de code c'est plutôt de rendre incompréhensible et inexploitable le code décompilé.
0  0 
Avatar de camus3
Membre éprouvé https://www.developpez.com
Le 18/04/2013 à 19:33
et inexploitable le code décompilé.
C'est surtout ce dernier point qui est important. Il est courant de voir , dans le jeux video par exemple , 2 jeux avec le code source totalement identique , sauf que l'un d'entre eux a été recompilé avec des assets différents par une autre boite , et sorti sour un autre nom. L'obfuscation allourdi nécessairement le code final , alors qu'un fichier minifié pour être déminifié , dans une certaine mesure.
0  0 
Avatar de Watilin
Expert éminent https://www.developpez.com
Le 19/04/2013 à 14:03
Ca m'agace toujours un peu quand j'entends parler d'obfuscation. En obfusquant mon application JavaScript, je fais l'hypothèse que la machine de mon client est suffisamment performante pour qu'il ne ressente pas la chute de performance inévitable causée par la saleté de mon code. C'est soit de l'inconscience, soit du mépris.

D'autre part, JavaScript est par essence un langage du Web, ce qui sous-entend pour moi, un langage de partage. Et voilà qu'un beau jour, Monsieur Sylvestre arrive avec son gros chapeau plein de dollars, et se dit « Tiens, je vais développer une application en JavaScript et je vais la vendre. Oh mais attends, les méchants vont me voler mon code source ! »
Sans vouloir troller ni y mettre de mon ressentiment personnel, je pense que JavaScript n'est pas le langage à choisir si on veut revendiquer la propriété intellectuelle de son code. Pour ça il y a Flash. Et a priori, c'est mieux au niveau performance (ça c'est discutable, mais c'est un autre débat).

Certains vont me dire « Oui mais on peut décompiler le Flash ! ». Certes. Mais un développeur suffisamment doué et motivé peut aussi déchiffrer du JS obfusqué. La question la plus pertinente à se poser est :
« De quelle manière puis-je protéger mon code tout en respectant les performances de la machine de mon client ? »

Et à mon avis, JScrambler n'est pas la bonne réponse à cette question.
0  0