Aller au contenu

Sécurité : ce qui protège vos données, et comment le vérifier

Mis à jour le 25/10/2026

Cette page décrit les protections du site telles qu'elles sont réellement en place, et donne pour chacune une façon de la vérifier vous-même, sans nous croire sur parole : depuis les outils de développement de votre navigateur (F12 ou « Inspecter », onglets Réseau, Application / Stockage) ou depuis votre application de portefeuille. Ce qui ne peut pas être vérifié de l'extérieur est indiqué comme tel. Elle est mise à jour à chaque évolution du site ; la version en cours est affichée en bas de chaque page. Les résultats bruts de l'audit technique (accessibilité, performance, en-têtes, bibliothèques, code) sont publiés sur la page Audit.

1. Votre portefeuille : lecture seule, aucune signature

  • Le site ne demande à votre portefeuille qu'une chose : votre adresse publique (la demande de connexion standard, eth_requestAccounts / connect). Il ne demande jamais de signature, de transaction, d'approbation de jeton ni de phrase de récupération.
  • Une adresse collée à la main suffit : aucun compte, aucune extension.
  • Le site n'a aucune clé privée, donc aucun moyen de déplacer des fonds, ni le nôtre, ni celui d'un attaquant qui prendrait le contrôle du serveur.

Vérifiez : lors de la connexion, votre portefeuille affiche exactement ce qui lui est demandé. Vous devez voir « bilandefi.fr souhaite voir votre adresse » (ou équivalent), et rien d'autre. Si une signature, une transaction ou une approbation vous est proposée, refusez : ce n'est pas bilandefi.fr. Vous pouvez retirer l'autorisation à tout moment dans les réglages du portefeuille (« sites connectés »).

2. Un seul script tiers : la mesure d'audience, sans cookie

  • Chaque page est servie avec une politique de sécurité du contenu (CSP) qui n'autorise que les scripts et images du site lui-même, plus le script de mesure d'audience Umami : script-src 'self' https://cloud.umami.is. Un script injecté, une publicité ou un traceur publicitaire ne peuvent pas s'exécuter.
  • Les seuls scripts sont ceux du site : la lecture de l'adresse dans le portefeuille, la reconnaissance du réseau d'une adresse collée, et (seulement si vous cliquez sur WalletConnect), le SDK WalletConnect, servi par notre serveur (version épinglée), jamais par un tiers.
  • Mesure d'audience : le script d'Umami (cloud.umami.is, sans cookie) compte les pages vues. Un filtre du site passe avant chaque envoi : le chemin de la page part sans ses paramètres (le lien d'un bilan ne part jamais), et le titre d'une page qui porte une adresse devient « Bilan ». Il n'est chargé ni sur les pages de mot de passe ni sur l'administration.
  • Le rapport lui-même (la page de bilan) est une page HTML sans script de calcul : tout est calculé sur le serveur, les onglets et survols sont du CSS.

Vérifiez : onglet Réseau des outils de développement, puis rechargez une page : toutes les requêtes vont vers bilandefi.fr, sauf la mesure d'audience (cloud.umami.is, gateway.umami.is). Autres exceptions, seulement si vous les déclenchez : accounts.google.com quand vous choisissez « Continuer avec Google », le relais WalletConnect (*.walletconnect.com / *.walletconnect.org, *.reown.com) quand vous cliquez sur WalletConnect. L'en-tête Content-Security-Policy de chaque réponse liste ce qui est autorisé.

3. En-têtes de sécurité, sur chaque réponse

En-têteValeurCe que ça empêche
Content-Security-Policydefault-src 'self'; script-src 'self' https://cloud.umami.is; img-src 'self' data:; connect-src 'self' (et Umami); frame-ancestors 'none'; base-uri 'none'; form-action 'self' https://checkout.stripe.com https://billing.stripe.comScripts et ressources venus d'ailleurs, formulaires détournés vers un autre site (seules les pages de paiement Stripe sont permises)
Strict-Transport-Securitymax-age=31536000; includeSubDomainsToute connexion en clair (HTTP) une fois le site visité en HTTPS
X-Frame-OptionsDENYL'affichage du site dans un cadre d'un autre site (clickjacking)
X-Content-Type-OptionsnosniffL'interprétation d'un fichier comme un script
Referrer-Policysame-originLa fuite de l'adresse de la page (et de ce qu'elle contient) vers un autre site
Cache-Controlprivate, no-storeLa conservation d'un bilan dans un cache partagé (proxy, hébergeur)
Permissions-Policybrowsing-topics=(), interest-cohort=()Le ciblage publicitaire du navigateur

Vérifiez : onglet Réseau, cliquez sur la requête de la page, puis En-têtes de réponse. Ou, dans un terminal : curl -sI https://bilandefi.fr/faq.

4. Ce qui sort de votre navigateur

  • Vers le site : l'adresse publique à analyser, vos réponses aux points à trancher, et ce que vous tapez dans un formulaire. Rien d'autre : pas d'identifiant d'appareil, pas de mesure d'audience.
  • Dans les liens : l'adresse n'apparaît plus en clair ; elle voyage chiffrée (?a=…, AES-SIV authentifié), illisible pour l'hébergeur et ses journaux. Vos réponses voyagent chiffrées elles aussi (?r=…, AES-GCM, différentes à chaque lien).
  • Réponses aux points à trancher : elles restent dans votre navigateur ; le serveur ne garde que des compteurs anonymes (jour, protocole, réseau, réponse), sans adresse.

Vérifiez : ouvrez un bilan, puis regardez la barre d'adresse : ?a= suivi d'un jeton, et non votre adresse. Dans l'onglet Réseau, les requêtes ne portent aucune donnée que vous n'ayez saisie.

5. Cookies

CookieRôleDuréeAttributs
pat_sessionVotre session (seulement si vous avez un compte)12 hHttpOnly, Secure, SameSite=Lax, signé : un cookie modifié est ignoré
pat_session_oauthL'aller-retour vers Google (état, PKCE)30 minHttpOnly, Secure, SameSite=Lax
bd_niveauVotre niveau (débutant, confirmé, expert)1 anHttpOnly, Secure, SameSite=Lax ; aucun identifiant
bd_portefeuilleLe portefeuille crypto que vous avez choisi de créer (Trust Wallet, MetaMask ou Rabby), pour adapter la liste « pas à pas »1 anHttpOnly, Secure, SameSite=Lax ; aucun identifiant
bd_ecranLa taille de votre écran (largeur × hauteur, densité), pour la mesure d'audience6 moisSecure, SameSite=Lax ; posé par la page, aucun identifiant, aucun tiers
bd_aluLes alertes déjà lues dans l'onglet Alertes (empreintes courtes, sans adresse)1 anHttpOnly, Secure, SameSite=Lax ; aucun identifiant

Vérifiez : outils de développement, onglet Application (Chrome) ou Stockage (Firefox), puis Cookies. Il n'y en a pas d'autre, et aucun n'appartient à un tiers.

6. Comptes et mots de passe

  • Mot de passe haché avec scrypt (paramètres OWASP, sel par mot de passe) : nous ne pouvons pas le lire.
  • Lien de confirmation valable 24 h, lien de réinitialisation valable 1 h ; changer de mot de passe périme tous les liens en circulation.
  • Verrouillage temporaire après des échecs répétés ; un e-mail déjà inscrit n'est jamais révélé au visiteur (le titulaire est prévenu, pas lui).
  • Connexion Google par OpenID Connect avec PKCE et nonce ; le site ne voit que l'e-mail, le nom et la photo de profil.
  • Les clés API des plateformes que vous connectez sont acceptées en lecture seule (une clé qui autorise un retrait est refusée) et stockées chiffrées ; elles ne sont jamais réaffichées.
  • Un espace ne voit que ses données : chaque lecture en base est filtrée par l'identifiant de l'espace.

7. Ce que le serveur garde, et sous quelle forme

  • Le rapport n'est pas enregistré : calculé, affiché, gardé au plus 45 minutes en mémoire, jamais sur disque.
  • Le cache des données blockchain est rangé sous une empreinte à clé secrète (HMAC-SHA256) de l'adresse (impossible de retrouver l'adresse depuis un nom de fichier, ni de savoir si une adresse a été analysée), et son contenu est chiffré (AES-GCM). La clé vient de l'environnement de l'hébergeur, jamais du disque.
  • La base de données tourne sur le même serveur, à Francfort (DigitalOcean), sans port ouvert sur Internet ; sauvegarde chaque nuit. Le site refuse de démarrer avec un secret de session par défaut.
  • La liste complète (donnée par donnée, durée, qui y accède, comment l'effacer) est sur Ce que nous faisons de vos données. « Supprimer mes données », depuis votre espace, efface tout sur-le-champ.

Ce que vous ne pouvez pas vérifier de l'extérieur : le chiffrement du cache et de la base, la durée de conservation en mémoire. Ce sont des engagements de l'éditeur, décrits ici tels qu'ils sont codés ; ils sont opposables au titre du RGPD.

8. Contre l'aspiration et l'abus

  • Limites de débit par visiteur (et par compte), plus serrées sur le calcul de bilan ; suspension temporaire des scripts qui balayent le site. Les logos et fichiers du site n'y comptent pas : afficher une page n'est jamais pénalisé.
  • Les outils automatisés qui s'annoncent comme tels n'accèdent pas aux pages qui coûtent.
  • Aucune API publique ne renvoie de données en masse.

9. Revue de sécurité et signalement

  • Dernière revue interne : 29 septembre 2026 (v0.6.8), authentification, cloisonnement des espaces, échappement HTML, en-têtes, relais WalletConnect, effacement de compte, dépendances (pip-audit : aucune vulnérabilité connue). Corrections apportées à cette occasion : échappement des guillemets dans les attributs HTML (sans exécution possible grâce à la CSP), périmètre exact du relais WalletConnect (version épinglée), HSTS étendu aux sous-domaines, effacement des positions surveillées et des jours de présence avec le compte, refus du secret par défaut.
  • Vous avez trouvé une faille ? Écrivez à contact@bilandefi.fr (voir aussi /.well-known/security.txt). Nous répondons sous 72 h et corrigeons avant toute publication ; aucune poursuite contre une recherche de bonne foi qui n'accède pas aux données d'autrui.
Bilan Crypto v0.8