Newsletter Developpez.com

Inscrivez-vous gratuitement au Club pour recevoir
la newsletter hebdomadaire des développeurs et IT pro

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, Expert éminent sénior
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 ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de alex_vino 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.
Avatar de PatteDePoule 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!
Avatar de CapFlow 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 !
Avatar de alex_vino 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.
Avatar de wirenth 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...
Avatar de Lupus Michaelis 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é.
Avatar de camus3 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.
Avatar de Watilin Watilin - Expert confirmé 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.
Avatar de alex_vino alex_vino - Membre émérite https://www.developpez.com
le 19/04/2013 à 14:28
@Watilin: Pourquoi faire une application Flsh si tu développe en JavsSript pour le Web (pc / tablette / smartphone / Windows 8, ...)?
Il ne faut pas tout confondre. C'est tout de meme compréhensible qu'une entreprise qui dépense une fortune et mise tout sur une application qu'elle veuille protéger son code.
Si ton code Javascript est sale alors fait du code propre. Mais n'ouiblie pas que le code sale n'est pas spécifique a javascript.
Avatar de Watilin Watilin - Expert confirmé 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.
Offres d'emploi IT
RESPONSABLE WEB ANALYTICS F/H
VACALIANS GROUP - Languedoc Roussillon - SETE (34)
Développeur WEB PHP F/H
VACALIANS GROUP - Languedoc Roussillon - SETE (34)
Développeur Web FULL-STACK
VACALIANS GROUP - Languedoc Roussillon - SETE (34)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil