Forum Programmation.ruby api key dans application open-source ruby

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
24
nov.
2014

Bonjour,

Dans la cadre d'un projet ruby, ou plus simplement dans un langage de script, j'aimerai utiliser un web service qui se base sur l'utilisation d'une API key. Je ne pense pas que ce web service soit très exigeant quant a l'utilisation de cette clé mais peu importe, c'est aussi pour ma culture générale. Mais voici mon problème :

Si j'hardcode la clé dans les sources, elle sera publique avec mes sources, et donc facilement trouvable
Si je la met dans un fichier de config non tracé dans git mais juste un template et que je cale cette clé dans les paquets:
1. Ce sera présent dans les paquets sources
2. Comme c'est un langage de script, il suffit d'ouvrir le dit fichier une fois l'appli installée pour récupérer la clé.

Cela dit, avec un langage compilé, la démarche d'analyser le binaire est certes plus compliquée mais pas impossible non plus, a moins de sortir le grand jeu a base de DRM.

Bref, je ne vois pas de bonnes solutions pour gérer ca convenablement. Existe il une méthode ou est ce qu'il est attendu que cette clé ne peut rester secrète ?

  • # mon point de vue

    Posté par  . Évalué à 3. Dernière modification le 24 novembre 2014 à 09:48.

    l'API key que toi tu utilises, est un element personnel de ton projet,
    tout comme le serveur, login/pass pour la base de donnée.

    tu dois donc publier, dans les sources, dans le paquet, un template de fichier de configuration et non pas ton fichier de configuration fonctionnel.

    • [^] # Re: mon point de vue

      Posté par  . Évalué à 2.

      Et du coup, comment faire un paquet qui marche out of box ? Typiquement, la j'aimerais appeler le scrapper tvDb pour identifier mes films de vacances comme le font des outils comme xbmc. Et si je ne fournis pas la clé, ca veut dire que c'est a l'utilisateur de le faire, ce qui n'est pas très friendly (et qu'il n'est pas nécéssaire de le faire dans xbmc).

      Comment faire pour garder cette clé secrète tout en al donnant a l'utilisateur ?

      • [^] # Re: mon point de vue

        Posté par  . Évalué à 2.

        deux possibilités :

        • la clef API est considérée par le fournisseur comme devant etre "personnelle", alors il te faut prevoir un emplacement dans ton interface pour que l'utilisateur ajoute sa propre clef.

        • la clef API est unique pour toutes tes instances de logiciel (et c'est autorisé par le fournisseur ?), à ce moment là, tu peux la crypter dans le code source, elle ne sera alors pas lisible par le commun des mortels, et tu la decrypte plus loin dans ton code.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.