Excellent l'ajoute des votes !
Je me pose juste la question, est-ce que c'est sécurisé de mettre des informations privées (posting key, etc) dans un fichier config.json ? Si quelqu'un déploie le bot sur Heroku ou Now.sh, il suffirait à n'importe qui de faire un git clone pour obtenir sa private key.
Bon boulot en tout cas ^^
Merci beaucoup @ragepeanut !
Ah oui effectivement poster ça sur Heroku c'est une catastrophe mais ne serait-ce que pour le token Discord si quelqu'un le récupère il prend le controle de ton bot et donc de ton serveur si les droits sont élevés.
Donc moi perso j'héberge sur mon propre serveur que je sécurise au mieux et puis surtout je fais bien gaffe de pas envoyer les données sur Github ou ailleurs. D'ailleurs dans ce cas de figure j'aurai du mettre un config-example.json au lieu de config.json (c'est fait grâce à toi ;-) commit ) !
Au début j'ai regardé un tutoriel sur les bot Discord et le gars mettais son token sur Github justement pour passer par Heroku. J'ai fouiné et j'ai commencé à lire des commentaires du style
En fait c'est logique si tu laisse le token à dispo de n'importe qui, on peut en faire ce qu'on veut. Donc j'ai vite zappé l'option Heroku et suis passé sur du VPS comme ça je suis tranquille :-) ! Maintenant pour infiltrer et modifier mon config.json faut infiltrer mon serveur.
Mais tu jetteras un oeil au bot de @yabapmatt tu verras que lui met carrément les 3 private key dans ses config.json, moi j'ai toujours une part de doute donc dans le doute je met que la posting vu que je n'ai besoin que de ça ici :-) !
Il y a moyen de stocker des informations privées sur Heroku, je le fais pour tous mes projets :P Ça se fait avec les variables d'environnements (appelées "config vars" sur Heroku). Les clés sont complètement séparées du code et de l'architecture du projet, du coup elles ne peuvent pas être clonées (pour en savoir plus, ça se passe ici). Par exemple, pour Steem Twitter Bot (que je vais sûrement renommer SteemDM d'ailleurs vu qu'il ne sera bientôt pas que sur Twitter), je fais appel à ces variables d'environnement pour initialiser le bot (capture d'écran).
Mais je disais ça surtout parce que tu peux être sûr que les novices vont chercher à hoster le bot gratuitement, et vont tôt ou tard passer par Heroku, ce qui pourrait être dangereux pour eux. C'est plus leur sécurité qui m'inquiète, toi je sais bien que tu sais ce que tu fais ! ^^
PS: t'as nommé ton fichier "config-exemple" au lieu de "config-example" :P
Ah mais c'est excellent !!!!
Pour les fans d'Heroku je vais poser ton lien en les alertant bien pour qu'ils prennent la peine de configurer leurs variables. Mais du coup je vais ajouter les deux, le lancement avec pm2 que j'utilise et le déploiement sur Heroku. Par contre pour pm2 je vais pas entrer dans les détails et pour Heroku non plus sinon ça va finir en tuto installation et configuration de serveur :-D !
Allez je laisserai aussi un truc du style --> https://blog.eleven-labs.com/fr/securiser-facilement-son-vps-en-quelques-etapes/ histoire de pouvoir au moins dire ... Je vous avais prévenu :-D !
https://support.rackspace.com/how-to/linux-server-security-best-practices/ en anglais plutôt ...
Et voilà !
Merci beaucoup et ceux qui l'utiliseront en passant par Heroku pourront te dire merci aussi ! J'ai modifié le README avec deux trois informations au moins c'est là ;-) !
Pas de soucis ! :D
Et pour revenir sur les tutoriels Heroku par la commu', j'ai eu la même chose. C'est au bout de 5-6 tutos que j'ai abandonné et que j'ai décidé d'aller lire la doc Heroku pour voir si c'était possible ou si je perdais mon temps à chercher. Même les chaînes de dev que je respecte le plus sur Youtube (comme The Coding Train dont je ne loupe aucune vidéo) mettaient les clés dans le code ou n'abordaient pas ce sujet... C'est un peu frustrant de voir tant de gens faire des tutoriels Heroku sur YouTube puis mettre leurs clés AWS sans protection ni rien dans le plus grand des calmes. Qu'ils ne viennent pas se plaindre de perdre de l'argent à une vitesse folle quand quelqu'un utilisera leurs clés...