Coder Social home page Coder Social logo

Comments (8)

bokub avatar bokub commented on June 8, 2024 2

@maelgangloff J'ai fait quelques modifications pour retirer toutes les informations "sensibles" des appels à mon service d'analytics, les changements sont déjà en production 👍

from linky.

bokub avatar bokub commented on June 8, 2024 1

Comment savoir quelles informations transitent sur ton serveur ?

Tu peux voir dans la librairie que tous les appels API contactent directement enedis.fr, sauf lorsque le token est expiré et qu'il faut le renouveler.

Donc quand tu fais linky daily par exemple, c'est directement Enedis qui répond.

Techniquement, tu as toutes les informations nécessaires pour interroger l'API de ton côté avec les token récupérés (je ne dis pas que c'est ce qui est fait, mais que c'est faisable), non ?

Sur ce point, tu as tout à fait raison. J'ai mis tout le code du serveur ici, mais effectivement, il n'y a rien qui prouve que c'est vraiment le code qui tourne sur le serveur, c'est juste une affirmation de ma part. Si je voulais, je pourrais tout à fait sauvegarder les tokens générés, et les utiliser pour récupérer les données de tout le monde.

Tu as donc 3 possiblités:

  • Soit tu fais confiance et tu utilises conso.vercel.app sans vraiment savoir ce qui se passe vraiment
  • Soit tu fais ton propre serveur (et dans ce cas il faut que tu crées ton entreprise et ta propre app, puis qu'Enedis la valide).
  • Soit tu utilises le site d'Enedis et bye bye la CLI...

je suis plus habitué à voir passer du Piwik/Matomo ou OWA

Effectivement, umami c'est moins courant, mais ça me permet de ne pas demander l'utilisation des cookies car aucune donnée personnelle n'est enregistrée.
Mon but est juste de compter le nombre de visiteurs pour savoir si mon outil est beaucoup utilisé et savoir si ça vaut le coup d'y passer du temps.

from linky.

bokub avatar bokub commented on June 8, 2024

Salut,

Juste pour être sûr, c'est quoi l'idée derrière ton projet ? Parce que je sais pas si tu réalises mais il va te falloir un CLIENT_ID + un CLIENT_SECRET fournis par Enedis.
Et pour avoir ça, il faut créer une app accessible aux testeurs d'Enedis, qu'ils valident que ton projet marche sur un environnement de test et qu'il est conforme à leur charte, puis que tu signes un contrat qui lie Enedis et ton entreprise (si tu n'en as pas il faut en créer une 😄 ), et enfin quelques semaines plus tard tu recevras tes credentials de prod et tu pourras enfin faire tourner ton serveur.

C'est justement parce que c'est aussi compliqué que j'ai créé ce projet, dont le serveur sert uniquement à obtenir des tokens d'accès (aucune récupération de données de consommation, aucune BDD...).

Et pour répondre à ta question, /api/collect n'a aucun rapport avec ce projet, si tu regardes l'URL complète tu verras que c'est https://metrics.boris.sh/api/collect, et c'est tout simplement une version auto-hébergé de umami (des analytics qui respectent la vie privée et les données personnelles).

from linky.

A-Nicoladie avatar A-Nicoladie commented on June 8, 2024

Argh... non je n'avais pas recherché jusque là. Ça à l'air très "simple" 😱😵
Je n'ai pas de projet, je suis simplement curieux. Donc bon... je ne vais pas créer une entreprise juste pour accéder à une API 😅 (et merci beaucoup d'avoir fait tout ça à notre place).

[...] le serveur sert uniquement à obtenir des tokens d'accès (aucune récupération de données de consommation, aucune BDD...).

Comment savoir quelles informations transitent sur ton serveur ?
Techniquement, tu as toutes les informations nécessaires pour interroger l'API de ton côté avec les token récupérés (je ne dis pas que c'est ce qui est fait, mais que c'est faisable), non ?

[...] c'est tout simplement une version auto-hébergé de umami [...]

Merci pour la précision, je ne connaissais pas umami (je suis plus habitué à voir passer du Piwik/Matomo ou OWA). Je vais y jeter un œil 😉

from linky.

A-Nicoladie avatar A-Nicoladie commented on June 8, 2024

Merci beaucoup pour toutes ces explications 😉👍

from linky.

maelgangloff avatar maelgangloff commented on June 8, 2024

Bonjour @bokub,
Ma question concerne le type de donnée qui est transferée sur votre serveur personnel.
En effet, en analysant les requêtes transmises, je constate que la requête POST vers votre serveur contient l'URL de la page courante et donc le paramètre code qui est à mon sens une information personnelle. Pourquoi ce token est-il envoyé sur votre serveur ?
linky

from linky.

bokub avatar bokub commented on June 8, 2024

Bonjour,

Après avoir autorisé le partage des données, Enedis redirige effectivement l'utilisateur vers une page de conso.vercel.app contenant ce code.

Ce code à usage unique doit ensuite être envoyé au serveur Enedis pour être échangé contre un access token et un renew token, ce qui est effectué par mon serveur. Les tokens ainsi obtenus sont ensuite affichés sur la page.

Tu peux trouver tout ce processus quelque part dans le dossier api du repo, et plus de détails sur le mécanisme dans la documentation d'enedis.

Je t'aurais bien mis des liens directs mais je suis sur mobile et je galère un peu pour trouver

Bonne journée

from linky.

bokub avatar bokub commented on June 8, 2024

Ah mince j'avais pas bien vu dans ton screenshot que tu parlais de la route "collect", qui correspond effectivement à mon service d'anaytics !

C'est vrai que ça pourrait être considéré comme de la donnée personnelle, il faudrait que je regarde si je peux retirer la partie query...

Hereusement, ce code est à usage unique et doit être utilisé dans les 30 secondes si je me souviens bien, donc pas super critique, mais je t'accorde que ça n'est pas idéal

from linky.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.