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

Autres hébergeurs Discussion :

Cacher la config d'identification de firebase


Sujet :

Autres hébergeurs

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 166
    Points : 61
    Points
    61
    Par défaut Cacher la config d'identification de firebase
    Bonjour,

    Après avoir transféré mon code sur un dépot github j'ai reçu des emails de la plateforme Google m'indiquant qu'il y avait un risque de sécurité lié dû à la présence de ce fichier sur github.

    ---------------------
    Dear Customer,
    As noted in a previous email, your Service Account authentication credentials associated with the following Google Cloud Platform account(s) are still valid and can be subject to compromise if not changed:
    firebase-adminsdk-igrd4@ecom-website...iceaccount.com with key ID 993f185ab00e65da7ba94d64edf92ed5b2cc8e19

    This key was found at the following URL: https://github.com/HALLneufmilles/Co...93f185ab0.json

    Based on our investigation of the issue, we believe that you or your organization may have inadvertently published the affected Service Account credentials in public sources or websites (for instance, if credentials were mistakenly uploaded to a service like GitHub). Please note that as the project/account owner, you are responsible for securing your resources.

    Immediate action is still required to secure your account(s). We strongly recommend that you take the following steps:

    Log in to the Google Cloud Console and review the activity on your account.
    Revoke all (or listed) credentials for compromised Service Accounts. As every resource accessible to the Service Account may have been affected, it is best to rotate all credentials on potentially affected projects. For more details, review the instructions on handling compromised GCP credentials.
    Delete all unauthorized VMs or resources if you see any.
    Take immediate steps to ensure that your Service Account credentials are not embedded in public source code systems, stored in download directories, or unintentionally shared in other ways.
    The security of your Google Cloud Platform account(s) is important to us. You can find more information on securely using IAM and also recommended best practices for keeping service accounts keys safe.

    Sincerely,
    Google Cloud Platform Trust & Safety
    ---------------------

    D'après les posts lu sur stackoverflow il semblearait qu'il ne soit pas nécessaire de cacher ce fichier.

    Donc que faut-il faire exectement ?
    Pourquoi Google me relance sans arrêt ?

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 166
    Points : 61
    Points
    61
    Par défaut cacher la config d'identification de firebase
    Quand j'utilise se code pour configurer firebase tout fonctionne bien. Le probleme est que mes identifications sont visibles. J'ai fais quelques modifications des clefs par sécurité.

    **server.js**
    ```
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    const express = require("express");
    const admin = require("firebase-admin");
    const bcrypt = require("bcrypt");
    const path = require("path");
    const nodemailer = require("nodemailer");
    const stripe = require("stripe"); // stripe payment 1
    const dotenv = require("dotenv");
     
    // firebase admin setup
    let serviceAccount = {
      type: "service_account",
      project_id: "ecom-website-ef3e5",
      private_key_id: "185ab00e65da7ba94d64edf92ed5b2cc8e19",
      private_key: "-----BEGIN PRIVATE KEY-----\nvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDK3JLDRCe9uW5V\nqcnwG77F8RZVT7Mjc5JpnS9tTXlfWSBbz6fKpevHBM8ARIMpTzAo9DNgXloFJy4h\nVFnqzcswHed+1i8BRGYRQ5D9AkWm+p28d8xpLjZuKbn3iCBIHlVKYqPO3B1q79NM\nmGloX7WBNX0sMYvo3EBfJS2X0ysXO2a/Pdm7+MO1n0hFZbeGFxiLC0dsDtvha5+Q\nNl55Lw8CoCfbOJQXowHwty/YVKGsgFzunw6u98iymi6KbmwUhni4Eb2/1S03yauc\noTxHlj/XPuIAhNfYXQs3dkt5HYFLShTNaHVCSy5Qs/DLcluBwYrLPP/kPLV3sPWp\nhlKnb6uTAgMBAAECggEAHwurU5eOSW/Oc0JdIDzuxkDuJ7eJynwjxRFZh8MajGgJ\nwWNB4jaK+ICY5AlC1W3uszskKF8S1xphlJeMfJhqvH4Rxox60cPTpwK4drAD/tj4\njjZQodbWXPz6c+fGS6MwxFsyMd89NUy8q/U19H4+kHv3dcL4uXYI9/FVophI+PCd\nb6jkT/+gGilua8AQNSpe+tIPrSlFD98KP6vjBywlIdS5/gd8T1cgolS/fJfmCB+1\nlC4Jkg2WOSKJVwLapyjFyPgqSWHgQNM1wZuMo1WuE1xD5iQ/XhocSy9LdydG3K5c\n7jD7pVBq6W86N7NxnzhEyzADUEvOLPaaCjmvKjsrUQKBgQDxuIKHU6bVXYuir7oR\nL9YKVU/F3xIdjqDmviSWVmfp5kO6hpVXdAQOE+d8+FosAHAM8SbeMz3+MIy/asWp\nf1hfjHPxye16+sySLlhb6p6G5ydYnMeAM8j+F57uyur+hW6oPlbfVlZDlsfrZUFr\nGqjvZ61Y6J3YD8VG1/Ot124ASwKBgQDW2GfBkYsYJlVU2MLv/oD/pczMgFh7AyUg\nOg93fHLj2rUrxgNGrLR0BEmiAvzisbpsHuYpsQiPeA2XlSsE4KCivF2n+55MN4GS\nkK8AVL2gj6cLaI0sbgvX939083w7qc8Hd/RUmPVpwX/F41qWIcZkl/nWZixB4Bpm\nlt/ATejE2QKBgCAS038RYnm9R+H2X0IYjtYgK82do9G4MzFq2X/5RyCKJUKCyR4p\njsAvc+/pJE3iYPvWo8moEvm/h21+xWuQMjG7eUcD/DbtQGfFLoRDxXUxBs+DPhWM\nyYatq7ETy8qp+dzpKK3Jzvh48V4SuXN0viXGJAJAG3Gn5g1YakUO6NGxAoGBAIM+\ncaui4GihSjFptTPsshr5yvEGWobS9gQI09f3MywUN+aEsQ2khRv2XpDU6G0Hi01v\nVsUTO5qBCTSXUE9LdXXUQhZTNHF02veQ4Qb/vVNvTek/NjZ1B1EoBTmJYFQGOM1k\nLuLbCdhP92EIsRbTjSF4YYvioJihcR9IfWk5br+JAoGAM420uoTqOs+Pzdj6ufmU\nArXgx11HcOI49qWpHRPthOOAG+eSNj/4Vhyo9Qd70WM76FQjiixdr4XkVka4uW0I\n5fDE2zQrB4AqfQmqECgK2Oy3E4bUFyz4PuNF+DqX1lmKIUWFSXG/BItYVRHN7IOG\nQkTz5Wuce3IpW2bDzGOwkSI=\n-----END PRIVATE KEY-----\n",
      client_email: "firebase-adminsdk-igrd4@ecom-website-ef3e5.iam.gserviceaccount.com",
      client_id: "108310191022764476750",
      auth_uri: "https://accounts.google.com/o/oauth2/auth",
      token_uri: "https://oauth2.googleapis.com/token",
      auth_provider_x509_cert_url: "https://www.googleapis.com/oauth2/v1/certs",
      client_x509_cert_url: "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-igrd4%40ecom-website-ef3e5.iam.gserviceaccount.com",
    };
    //const { isNumberObject } = require("util/types");
    admin.initializeApp({
      credential: admin.credential.cert(serviceAccount),
    });
     
    let db = admin.firestore();
    ```
    mais lorsque j'utilise les variables d'environnement, ça ne fonctionne plus. J'ai pourtant vérifier s'il y avait des fautes de frappe, tout semble correct.
    Alors pourquoi ça ne fonctionne pas ? est ce que s'est un problème de syntaxe ?

    j'utilise déja les variables d'environnement pour AWS et je n'ai pas de problème donc

    L'erreur dans la console est :
    ```
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    errorInfo: {
        code: 'app/invalid-credential',
        message: 'Service account object must contain a string "project_id" property.'
      },
    ```

    **server.js**
    ```
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    const express = require("express");
    const admin = require("firebase-admin");
    const bcrypt = require("bcrypt");
    const path = require("path");
    const nodemailer = require("nodemailer");
    const stripe = require("stripe"); // stripe payment 1
    const dotenv = require("dotenv");
     
    // firebase admin setup
    let serviceAccount = {
      type: process.env.TYPE,
      project_id: process.env.PROJECT_ID,
      private_key_id: process.env.PRIVATE_KEY_ID,
      private_key: process.env.PRIVATE_KEY,
      client_email: process.env.CLIENT_EMAIL,
      client_id: process.env.CLIENT_ID,
      auth_uri: process.env.AUTH_URI,
      token_uri: process.env.TOKEN_URI,
      auth_provider_x509_cert_url: process.env.AUTH_PROVIDER,
      client_x509_cert_url: process.env.CLIENT_X509,
    };
    //const { isNumberObject } = require("util/types");
    admin.initializeApp({
      credential: admin.credential.cert(serviceAccount),
    });
     
    let db = admin.firestore();

    ```
    **.env**
    ```
    Code ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TYPE=service_account
    PROJECT_ID=ecom-website-ef3e5
    PRIVATE_KEY_ID=185ab00e65da7ba94d64edf92ed5b2cc8e19
    PRIVATE_KEY=-----BEGIN PRIVATE KEY-----\nvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDK3JLDRCe9uW5V\nqcnwG77F8RZVT7Mjc5JpnS9tTXlfWSBbz6fKpevHBM8ARIMpTzAo9DNgXloFJy4h\nVFnqzcswHed+1i8BRGYRQ5D9AkWm+p28d8xpLjZuKbn3iCBIHlVKYqPO3B1q79NM\nmGloX7WBNX0sMYvo3EBfJS2X0ysXO2a/Pdm7+MO1n0hFZbeGFxiLC0dsDtvha5+Q\nNl55Lw8CoCfbOJQXowHwty/YVKGsgFzunw6u98iymi6KbmwUhni4Eb2/1S03yauc\noTxHlj/XPuIAhNfYXQs3dkt5HYFLShTNaHVCSy5Qs/DLcluBwYrLPP/kPLV3sPWp\nhlKnb6uTAgMBAAECggEAHwurU5eOSW/Oc0JdIDzuxkDuJ7eJynwjxRFZh8MajGgJ\nwWNB4jaK+ICY5AlC1W3uszskKF8S1xphlJeMfJhqvH4Rxox60cPTpwK4drAD/tj4\njjZQodbWXPz6c+fGS6MwxFsyMd89NUy8q/U19H4+kHv3dcL4uXYI9/FVophI+PCd\nb6jkT/+gGilua8AQNSpe+tIPrSlFD98KP6vjBywlIdS5/gd8T1cgolS/fJfmCB+1\nlC4Jkg2WOSKJVwLapyjFyPgqSWHgQNM1wZuMo1WuE1xD5iQ/XhocSy9LdydG3K5c\n7jD7pVBq6W86N7NxnzhEyzADUEvOLPaaCjmvKjsrUQKBgQDxuIKHU6bVXYuir7oR\nL9YKVU/F3xIdjqDmviSWVmfp5kO6hpVXdAQOE+d8+FosAHAM8SbeMz3+MIy/asWp\nf1hfjHPxye16+sySLlhb6p6G5ydYnMeAM8j+F57uyur+hW6oPlbfVlZDlsfrZUFr\nGqjvZ61Y6J3YD8VG1/Ot124ASwKBgQDW2GfBkYsYJlVU2MLv/oD/pczMgFh7AyUg\nOg93fHLj2rUrxgNGrLR0BEmiAvzisbpsHuYpsQiPeA2XlSsE4KCivF2n+55MN4GS\nkK8AVL2gj6cLaI0sbgvX939083w7qc8Hd/RUmPVpwX/F41qWIcZkl/nWZixB4Bpm\nlt/ATejE2QKBgCAS038RYnm9R+H2X0IYjtYgK82do9G4MzFq2X/5RyCKJUKCyR4p\njsAvc+/pJE3iYPvWo8moEvm/h21+xWuQMjG7eUcD/DbtQGfFLoRDxXUxBs+DPhWM\nyYatq7ETy8qp+dzpKK3Jzvh48V4SuXN0viXGJAJAG3Gn5g1YakUO6NGxAoGBAIM+\ncaui4GihSjFptTPsshr5yvEGWobS9gQI09f3MywUN+aEsQ2khRv2XpDU6G0Hi01v\nVsUTO5qBCTSXUE9LdXXUQhZTNHF02veQ4Qb/vVNvTek/NjZ1B1EoBTmJYFQGOM1k\nLuLbCdhP92EIsRbTjSF4YYvioJihcR9IfWk5br+JAoGAM420uoTqOs+Pzdj6ufmU\nArXgx11HcOI49qWpHRPthOOAG+eSNj/4Vhyo9Qd70WM76FQjiixdr4XkVka4uW0I\n5fDE2zQrB4AqfQmqECgK2Oy3E4bUFyz4PuNF+DqX1lmKIUWFSXG/BItYVRHN7IOG\nQkTz5Wuce3IpW2bDzGOwkSI=\n-----END PRIVATE KEY-----\n
    CLIENT_EMAIL=firebase-adminsdk-igrd4@ecom-website-ef3e5.iam.gserviceaccount.com
    CLIENT_ID=108310191022764476750
    AUTH_URI=https://accounts.google.com/o/oauth2/auth
    TOKEN_URI=https://oauth2.googleapis.com/token
    AUTH_PROVIDER=https://www.googleapis.com/oauth2/v1/certs
    CLIENT_X509=https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-igrd4%40ecom-website-ef3e5.iam.gserviceaccount.com
    ```

  3. #3
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 321
    Points : 642
    Points
    642
    Par défaut
    Bonjour,

    Je ne sais pas quels posts tu as lu, mais tu devrais surement prendre en considération les relances de Google.
    La configuration de ton projet contient des informations privées (private_key, private_key_id...). Ces informations ne doivent pas être accessibles publiquement, ni sur Github, ni sur un forum.
    Pour faire une analogie, c'est comme si tu exposais publiquement le mot de passe de ta boite mail !
    Comme indiqué dans le message de Google, tu dois révoquer et recréer des identifiants que tu devras conserver de manière privée.
    https://cloud.google.com/docs/securi...dentials?hl=fr

    L'utilisation d'un fichier .env est une bonne idée.
    Tu peux ajouter ce fichier .env dans ton fichier .gitignore pour empêcher qu'il soit commité sur ton dépot Git.
    Si besoin, tu peux commiter un fichier .env.dist avec des valeurs d'exemples pour avoir dans ton dépot un exemple de fichier .env adapté à ton projet.

    Concernant l'erreur "must contain a string", il ne te manque pas simplement des quotes pour délimiter la chaine de caractère dans ton fichier .env ?

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 166
    Points : 61
    Points
    61
    Par défaut
    bonjour Pypet,

    Je pense avoir tout essayé, avec des quotes partout ou seulement sur project_id, j'ai vérifié encore une éventuelle faute de frappe... je comprends pas d'où peut venir le problème. Pourtant ça fonctionne sans les variables d'environnement. je sais plus quoi faire.

Discussions similaires

  1. [JAAS] Identification et configuration du fichier .config
    Par babosso dans le forum Sécurité
    Réponses: 7
    Dernier message: 30/09/2012, 18h45
  2. Problème identification web.config VB
    Par papy_taupe dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 20/01/2011, 15h10
  3. BdD pour identification, cherche à cacher les mdp dans la base
    Par maverick56 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 18/06/2007, 14h09
  4. Cacher fenetre
    Par Captain Fizzou dans le forum GLUT
    Réponses: 2
    Dernier message: 25/08/2002, 17h22

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