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 :

Proteger son code JS


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut Proteger son code JS
    Salut a tous,

    je me posait une petite question.

    SI on utilise son code JS en le mettant dans un fichier externe .JS dans un dossier dont on onterdit l'acces au utilisateur.

    La page poura etre utiliser tout de meme par les pages du site? SI c'est le cas le JS ne poura pas etre lu par les visiteurs non?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    essaye si t'es un javascripteur

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    ben oui, essaye;
    mais un .htaccess ne te permet pas ce faux-fuyant;

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    oui mais un top.location.href pourrait permettre de faire une redir non ?

  5. #5
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Citation Envoyé par javatwister
    ben oui, essaye;
    mais un .htaccess ne te permet pas ce faux-fuyant;
    Comment ca?
    Le JS ne sera pas utiliser par la page qui l'appelle c'est ca?

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    on te demandera de te logger;
    idem sous ffx si tu passes par une requête xhr

  7. #7
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Il doit surement y avoir un moyen d'interdire l'acces directe seulement à la page. (enfin j'espère).

  8. #8
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    direct ou pas, si un adresse protégée est invoquée, tu dois donner ton login et ton pswd!

  9. #9
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Oui mais on ne peut pas en bidouillant le .htacces arriver a autoriser l'acces au dossier pour les page de son site?

    (Un peu comme les .htacces qui interdise les utilisations des images sur des sites externe).

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    oui mais imaginez un repertoir avec un index.htm ...
    dans lequel on colle un fichier.js
    si on commence le fichier par une paire de ligne du gerne try catch ?
    genre try{document.body}

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    mes tentatives ne sont pas très concluantes... j'ai toujours un message d'erreur ...
    remarque ça empèche l'affichage du fichier ...

  12. #12
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Avec un truc comme ca dans le htaccess il n'y aurait pas moyen d'y arriver:

    RewriteCond %{HTTP_REFERER} !^http://www.votredomaine.net/.*$ [NC]

    et apres on autorise la lecture du .js?

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    arf mon truc boite sous IE mais rampe avec ffx ...

  14. #14
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Salut,
    franchement, je ne pense pas que ca soit possible.
    Pour une raison simple : le code javascript doit quoi qu'il en soit être téléchargé par le navigateur pour pouvoir fonctionner. Donc en partant de ce constat, je vois pas comment on pourrait à la fois mettre ce site à disposition du navigateur et à la fois le cacher d'un oeil 'humain'.
    SI on utilise son code JS en le mettant dans un fichier externe .JS dans un dossier dont on onterdit l'acces au utilisateur.
    La page poura etre utiliser tout de meme par les pages du site?
    Je dirais NON car il paraît difficile de faire une distinction entre l'utilisateur pour qui l'acces doit etre interdit, et le navigateur qui doit pouvoir acceder au script afin de le lancer .... si on y réfléchit bien il s'agit de la même entité, mais avec simplement deux intentions différentes (dans un cas visualiser le script et dans l'autre cas executer le script).
    Car quand tu fais cela, certes dans le code source de la page on ne voit pas le script lui même, mais cependant on voit son url, et à partir de celle-ci on peut telecharger le fichier js via http.
    Je suppose que c'est pour cela que tu propose d'interdire l'acces à l'utilisateur.
    Le problème est que si tu interdit l'utilisateur d'acceder à ce fichier, tu interdit au navigateur d'y acceder aussi. Ce dernier ne pourra donc plus telecharger ni executer le code js.

    La page poura etre utiliser tout de meme par les pages du site?
    Attention, ce n'est pas "la page" qui utilise le script js, mais le navigateur. Quand tu met une balise appelant un fichier js externe (genre <script language="javascript" src="http://machin.com/truc.js" />), le navigateur telecharge le fichier .js séparément de la page html. Ce n'est pas la page web qui inclus toute seule le fichier js à elle-meme.

    Apres on peut chercher des astuces mais je suis sceptique.
    Surtout que même dans l'hypothèse ou on trouve une astuce qui marche, le script aura quand même été chargé dans le navigateur, donc il doit bien y avoir un moyen de l'en extraire.
    A mon avis, il serait plus simple et plus sain d'utiliser un applet, car lui il est compilé, ce qui protege quand même pas mal le code.

    Sinon, dans le genre "astuces et bricolages bizare", j'ai pensé à un truc :
    lorsque ton serveur web donne la page html, il fournis en meme temps une clef generee de maniere aléatoire et valable une seule fois.
    Concretement, la page contient une balise du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script language="javascript" scr="http://machin.com/truc.cgi?clef=16524684">
    Ensuite, dans le script 'truc.cgi', tu vérifie la validité de la clef, par exemple un tableau en variable globale dans lequel elle aura été placée au moment de la génération de la page html. Puis si la clef est ok, tu l'efface du tableau et tu envoie le code javascript au client .

    Ca ne devrait pas empecher la visualisation du script à 100%, mais ca devrait serieusement compliquer la tâche de celui qui voudrait le voir.

    Edit : tu pourrais meme mettre un temps d'expiration sur la clef, par exemple si le script js n'a pas été téléchargé en moins d'une demi-seconde (je dis ca au pif) apres la création de la clef, cette derniere ne sera plus valable.
    Ainsi, il devrait être impossible à un cerveau humain d'avoir le temps d'analyser la source et d'y trouver la clef pour aller telecharger le script au cas ou l'utilisateur se serait débrouillé que son navigateur ne telecharge pas le script afin de ne pas gaspiller la clef (je sais pas si je suis bien clair)

    Si tu fais comme cela, à mon avis la seule façon de contourner cette sécurité est d'écrire son propre client http (qui serait capable de chopper une clef et d'aller s'en servir pour telecharger le script et le donner à l'utilisateur); Tout ça spécifiquement pour voler ton script js .... autant dire qu'il faudrait que ton script en vaille VRAIMENT la peine pour se donner autant de mal. Si 'est aussi sensible que ça, évite de passer par du javascript car je repete que je suis persuadé qu'il est impossible de proteger un script js à 100% (à moins de le rendre completement indisponible et donc inutilisable mais dans ce cas l'interet est limité).

  15. #15
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    et c'est sans doute exclu IE en plus non ?

  16. #16
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Je pense que c'est possible si on definit les pages qui y ont acces avec des rewrite cond.

    Je vais essayer et je vous dit ca

  17. #17
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Ca marche presque avec ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^http://127.0.0.1/manganimesV3.0/critiques/.*$ [NC]
    RewriteRule javascript.js  - [F]

  18. #18
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    le probleme c'est que si le mec viens d'une page autorisé il peut lire le code et si le meme viens d'un page interdite vers une page ou le JS doit s'executer ca ne marchera pas.

    EN fait il faudrait remplacer le HTTP_REFERER par l'addresse de la page au moment meme.

  19. #19
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Je vais pas recopier tout le message de Hervé Saladin mais il a très bien résumer la situation.

    Et franchement je ne voit pas pourquoi protéger son code js.
    Si c'est parceque c'est quelque chose de bien et que tu as passé beaucoup de temps à le developper, sa complexité découragera certainement ceux qui voudront le récupérer.

  20. #20
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    En fait je m'en diche que les gens le voient ou pas.

    C'est juste que j'aimerais y arriver. Et ca a de nombreuse autre application.
    Mais bon c'est pas grave si ca marche pas.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment bien déboguer son code ?
    Par D[r]eadLock dans le forum Débuter
    Réponses: 47
    Dernier message: 02/04/2024, 16h06
  2. [Toutes versions] Proteger son code nouvelle feuille
    Par bob456 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/08/2013, 12h19
  3. Comment proteger son code de la décompilation ?
    Par Tiberizz dans le forum Langage
    Réponses: 3
    Dernier message: 30/06/2010, 13h39
  4. Solution gratuite pour proteger son code
    Par Seth77 dans le forum C#
    Réponses: 1
    Dernier message: 02/11/2007, 14h40
  5. Proteger son code
    Par rafawel dans le forum Web
    Réponses: 7
    Dernier message: 21/03/2007, 16h33

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