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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

JScrambler 3 disponible


Sujet :

JavaScript

  1. #1
    Expert éminent sénior

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2013
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 426
    Points : 32 561
    Points
    32 561
    Par défaut JScrambler 3 disponible
    JScrambler 3 disponible
    l’outil permet de protéger son code JavaScript et HTML5 avant déploiement en obfusquant celui-ci

    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 ?

  2. #2
    Membre émérite

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Points : 2 368
    Points
    2 368
    Par défaut
    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.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 766
    Points
    766
    Par défaut
    Effectivement, moi aussi je constates qu'à première vue le code semble plus grand après!
    Les fautes d'orthographes sus-citées sont déposées auprès de leurs propriétaires respectifs. Aucune responsabilité n'est engagée sur la lisibilité du message ou les éventuels dommages qu'il peut engendrer.

  4. #4
    Membre actif Avatar de CapFlow
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 72
    Points : 219
    Points
    219
    Par défaut
    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 !

  5. #5
    Membre émérite

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Points : 2 368
    Points
    2 368
    Par défaut
    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.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 74
    Points : 389
    Points
    389
    Par défaut
    "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...

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 17
    Points : 59
    Points
    59
    Par défaut Je m'offusque
    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é.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 657
    Points : 1 240
    Points
    1 240
    Par défaut
    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.

  9. #9
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    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.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  10. #10
    Membre émérite

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Points : 2 368
    Points
    2 368
    Par défaut
    @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.

  11. #11
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    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.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  12. #12
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Clairement dans ce cas, obfuscation ne rime pas du tout avec optimisation. Quelle idée d'avoir un fichier plus lourd ...
    Je suis un fervent partisan de Minifier + gzipper mon code. Niveau bande passante gagné, ce n'est pas rien quand même !

    Enfin, il y a toujours Github, ou autre outil dérivé, pour partager son code de dév.

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Comment protéger une appli full web (Firefox OS ou autre) qui se doit d'être pleinement opérationnelle hors ligne ? C'est surement à cette question qu'Jscrambler essaye de répondre.

    Vu la dégradation des performances, c'est surement pas la bonne solution. Cela dit, actuellement un autre solution existe-elle ?

  14. #14
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Comment protéger une appli full web (Firefox OS ou autre) qui se doit d'être pleinement opérationnelle hors ligne ?
    Hors ligne ou en ligne, même combat. Quel intérêt à hacker une appli hors ligne ? Si ce n'est pourrir le logiciel et ce pourquoi on l'a pris (voire même acheté).

    Du moment que tu es blindé côté serveur (à la reprise de connexion), il n'y a pas de problème

  15. #15
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Points : 274
    Points
    274
    Par défaut Aucun intérêt
    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

Discussions similaires

  1. Récupérer la quantité de ressource disponible (RAM,CPU,HDD)
    Par telecnop dans le forum Programmation et administration système
    Réponses: 11
    Dernier message: 26/10/2005, 13h23
  2. [VBA]Obtenir les noms des polices disponibles
    Par xp dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/03/2004, 15h39
  3. Réponses: 3
    Dernier message: 23/01/2004, 21h02
  4. [API Windows] Polices de caractères disponibles
    Par bebeours dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/11/2003, 08h28
  5. Ports disponibles pour une connection
    Par Walm dans le forum Développement
    Réponses: 7
    Dernier message: 06/10/2003, 22h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo