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

NodeJS Discussion :

Crypter fichier JS côté serveur


Sujet :

NodeJS

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2019
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Crypter fichier JS côté serveur
    Bonjour,

    J'aimerais crypter des fichiers Javascript et PUG afin de protéger mes sources. Je sais que le code Javascript et le HTML résultant ne peuvent pas être non visible côté client, mais ce n'est pas ce que je veux faire.

    j'ai créer un programme avec NodeJS qui sera installé sur une machine locale pour un groupe d'utilisateurs (code + BDD) et devra être autonome et fonctionné en locale. Une partie permettant de s'identifier (NodeJS aussi) sera stockée sur un serveur extérieur qui sera accessible par chaque groupe d'utilisateurs avec une connexion internet. Mon désire serait de pouvoir empêcher les utilisateurs de pouvoir éditer les fichiers Javascript et PUG qui sont installés sur le serveur chez eux sans les empêcher de voir le code à partir de leur navigateur bien-sure.
    En gros il y a un site installé sur un serveur chez l'utilisateur et j'aimerais que les utilisateurs possédant le serveur ne puissent pas lire mon code source tout en pouvant l'exécuter. Je pensais qu'il suffirait de bloquer les fichier en lecture et en écriture mais l'administrateur du serveur chez l'utilisateur pourrait changer les droits.

    Je pense à deux solutions:
    _Soit une fonctionnalité de NodeJS qui permet de rendre des fichiers Javascript et PUG non éditable tout en permettant de les exécuter comme cela se fait sans les "crypter".
    _Soit d'avoir de crypter les fichiers s'exécutant côté serveur utilisateur, et un système permettant de "décrypter" ces fichiers en passant par le serveur d'authentification pour pouvoir les exécuter.

    Existe-t-il des fonctionnalités NodeJS permettant de mettre en place l'une de ces deux solutions ? Ou peut-être existe-t-il une autre solution pour répondre à ce problème ?

    En espérant avoir été claire dans mes explications.
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    4 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2005
    Messages : 4 209
    Points : 17 328
    Points
    17 328
    Par défaut
    C'est chiffrer le bon verbe et pas crypter.

    Pour ton problème, si tu ne veux pas qu'un utilisateur puisse modifier ton programme la seule bonne manière c'est de ne pas lui permettre de l'exécuter sur sa machine mais sur la tienne. En d'autres termes s'il y a des traitements dont tu veux t'assurer de l'intégrité et/ou de la confidentialité ils doivent être contrôlés par toi et accessibles via une interface exposée sur le réseau (API Rest par exemple) pour donner les infos en entrée et recueillir le résultat en sortie.

    Il n'y a aucune autre manière de faire. Tu ne peux pas empêcher un administrateur d'une machine de faire ce qu'il veut sur sa machine. C'est impossible.

    Pour ce qui est du code exécuté côté client (dans le navigateur), s'il y a des traitements dont tu dois t'assurer de l'intégrité et/ou de la confidentialité alors ils ne doivent pas se trouver dans cette partie de ta solution, tu dois impérativement les déplacer côté serveur.
    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2019
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Désolé pour le mauvais vocabulaire. Merci pour la réponse.

    Je suis bien conscient du fait de placer certaines parties côté serveur ou côté client et de ce que ça implique, et aussi qu'une personne est maître de sa machine et de ce qu'il y a dessus. Mais par exemple quand une personne installe un logiciel sur son ordinateur, elle peut bien-sure copier supprimer tous les fichiers qu'elle veut mais ne pourra pas éditer le code source en texte compréhensible de part une compilation ou autre. C'est une des solutions que je cherche à mettre en place. Pour ce faire je voulais savoir s'il existait quelque chose d'existant se rapprochant de cela avec NodeJS.
    Dans l'architecture de mon système, j'aimerais que, s'il y a une coupure d'accès à l'extérieur du réseau dans lequel se trouve mon système, qu'il y ai un fonctionnement minimum dans un réseau local.

    Je ne met pas résolu pour le moment car je cherche encore un peu s'il existe une solution clef en main avant de me résoudre à le faire moi même.

  4. #4
    Modérateur
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2005
    Messages
    4 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2005
    Messages : 4 209
    Points : 17 328
    Points
    17 328
    Par défaut
    Citation Envoyé par oimy666 Voir le message
    Je suis bien conscient du fait de placer certaines parties côté serveur ou côté client et de ce que ça implique, et aussi qu'une personne est maître de sa machine et de ce qu'il y a dessus.
    Ben alors pourquoi tu essaies de faire un truc tordu puisque tu connais les règles du jeu ?

    Citation Envoyé par oimy666 Voir le message
    Mais par exemple quand une personne installe un logiciel sur son ordinateur, elle peut bien-sure copier supprimer tous les fichiers qu'elle veut mais ne pourra pas éditer le code source en texte compréhensible de part une compilation ou autre.
    Bah elle peut pas modifier le code source parce qu'on lui a livré le binaire et pas le source mais avec Node il n'y a pas de binaire c'est de la compilation JIT, donc tu livres le source.

    Autre point la compilation n'est pas du tout une sécurité à ce niveau. Avec certaines compétences tu peux modifier le comportement du programme même compilé (donc sur la base du binaire uniquement).

    L'intégrité du programme n'est pas une propriété apportée par la compilation, c'est peut être là que tu commets une erreur de raisonnement.

    Citation Envoyé par oimy666 Voir le message
    C'est une des solutions que je cherche à mettre en place. Pour ce faire je voulais savoir s'il existait quelque chose d'existant se rapprochant de cela avec NodeJS.
    Ça n'existe pas pour les raisons évoquées précédemment auxquelles tu as répondu que tu étais conscient du problème.

    Du coup j'ai un peu de mal à te suivre. En gros tu dis que tu veux de l'eau qui mouille pas, je t'explique que c'est pas possible, tu réponds je sais mais je veux quand même de l'eau qui mouille pas.

    Ça va être compliqué
    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/07/2005, 20h53
  2. [WebLogic] Récupérer un fichier sur le serveur...
    Par T.NightGlow dans le forum Weblogic
    Réponses: 1
    Dernier message: 29/06/2005, 15h32
  3. Réponses: 6
    Dernier message: 08/04/2005, 03h00
  4. [VB.NET] Download de fichiers sur un serveur...
    Par Webman dans le forum ASP.NET
    Réponses: 3
    Dernier message: 19/05/2004, 10h25
  5. [Servlet][Tomcat] Upload d'un fichier sur le serveur
    Par gandalf_le_blanc dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 19/04/2004, 13h56

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