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 :

Obfusquer une clé publique


Sujet :

JavaScript

  1. #1
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut Obfusquer une clé publique
    Salut à tous,

    j'ai une appli purement javascript qui fait des appel à une API.
    Mon appli embarque une clé pour se connecter à l'API. Cette clé n'est pas le moyen d'authentification à l'API , il y'a en plus un couple login/mot de passe que l'utilisateur doit fournir.

    Je suis bien conscient qu'à partir du moment ou cette clé est coté javascript elle sera toujours visible mais j'aimerais la rendre moins "évidente" dans le code.

    Quelles solutions puis je utiliser pour essayer d'obfusquer un peu cette clé. ?

    Merci
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Effectivement comme tu l'as souligné, obfusquée ou non la clé sera toujours récupérable si elle se trouve côté client. Tu peux essayer de la masquer en renommant les variables ou en bricolant un peu avec le code, par exemple réécrire var KEY = "azerty" en var k = window[(![]+[])[+!+[]]+(!![]+[])[+[]]+"ob"]("YXplcnR5"). Peu importe la méthode choisie, le plus important ici sera de ne pas attirer l'attention. Mais je le redis encore, si la personne sait ce qu'elle cherche, elle trouvera sans aucune difficulté.

    D'un autre côté, une clé publique est censée justement pouvoir être publique sans que cela ne pose aucun problème de sécurité. Pourquoi tiens-tu à la cacher ?

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Merci de ta réponse.

    Tu pourrais m'expliquer (ou un lien) le petit bout de code tu à écris ^^ C'est typiquement le genre de chose qui me conviendrait.

    Pourquoi tiens-tu à la cacher ?
    Mon système est un peu particulier. Il y'a un ensemble d'identifiants qui peuvent être utilisé par plusieurs client différents et la clé est ce qui me permet d'identifier chaque client.
    Le but est d'éviter qu'un utilisateur utilise la clé de son client javascript avec son client c++ par exemple.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    J'ai juste utilisé les fonctions atob et btoa qui servent à encoder et décoder en base64. J'encode la clé avec btoa("azerty") qui donne "YXplcnR5", puis je laisse atob("YXplcnR5") dans le code final pour récupérer la String d'origine. Et pour que la fonction atob soit moins évidente à lire, je la récupère par référence sur l'objet window en construisant son nom avec quelques artifices évoqués dans cet article

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/07/2007, 12h18
  2. [regex] pattern pour une methode publique
    Par Invité dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 17/04/2007, 12h57
  3. Utilisation d'une variable publique dans une DLL
    Par Delphi-ne dans le forum Delphi
    Réponses: 13
    Dernier message: 05/12/2006, 13h19
  4. Recherche d'une ecole publique
    Par aderfat dans le forum Etudes
    Réponses: 2
    Dernier message: 13/09/2006, 09h33
  5. Mise en memoire d'une variable publique
    Par the_6L20 dans le forum Access
    Réponses: 3
    Dernier message: 17/08/2006, 15h34

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