[{"data":1,"prerenderedAt":701},["ShallowReactive",2],{"blog-fr-where-to-find-supabase-api-keys":3,"blog-index-fr":561},{"id":4,"title":5,"body":6,"category":514,"cover":515,"coverAlt":516,"description":517,"draft":518,"extension":519,"faq":520,"image":539,"keywords":540,"meta":548,"navigation":549,"ogTitle":550,"path":551,"published":552,"seo":553,"stem":554,"tldr":555,"updated":559,"__hash__":560},"blog_fr\u002Fblog\u002Fwhere-to-find-supabase-api-keys.md","Où trouver vos clés API Supabase : anon, service_role et URL",{"type":7,"value":8,"toc":500},"minimark",[9,22,25,28,33,41,56,59,63,66,77,80,106,109,113,116,231,237,240,244,252,255,275,282,285,289,302,305,323,326,335,339,342,345,357,361,364,367,380,398,403,410,414,417,423,441,451,455,488],[10,11,12,13,17,18,21],"p",{},"Quelque chose vous a demandé votre clé Supabase. Un guide d'installation, un fil\nde support, ou une IA à qui vous avez demandé de réparer votre app. Vous ouvrez\nle tableau de bord, vous tombez sur une page contenant une adresse et deux ou\ntrois clés aux noms comme ",[14,15,16],"code",{},"anon"," et ",[14,19,20],{},"service_role",", et chacune a l'air de\npouvoir être la bonne réponse.",[10,23,24],{},"Ou alors c'est l'autre version de la scène. Quelqu'un a ouvert votre site, a\nappuyé sur F12, et vous a dit qu'une clé était exposée. Vous voulez maintenant\nregarder la clé qu'il a trouvée, et vous ne savez pas où elle habite.",[10,26,27],{},"La plupart des guides démarrent à la page des clés API. Cela suppose que vous\nsachiez déjà quel projet Supabase est le vôtre, et c'est précisément l'étape\nqu'un builder a faite à votre place sans jamais l'expliquer.",[29,30,32],"h2",{"id":31},"où-sont-les-clés-api-supabase","Où sont les clés API Supabase ?",[10,34,35,36,40],{},"Dans le tableau de bord, à l'intérieur de votre projet, sous\n",[37,38,39],"strong",{},"Settings → API Keys",".",[10,42,43,44,47,48,51,52,55],{},"Le chemin complet : connectez-vous sur supabase.com, choisissez votre projet\ndans la liste, ouvrez ",[37,45,46],{},"Settings"," dans la barre latérale gauche, puis\n",[37,49,50],{},"API Keys",". Presque tous les guides et toutes les captures d'écran que vous\ntrouverez appellent cette page ",[37,53,54],{},"Settings → API",", parce que c'était son nom\njusqu'à récemment. C'est la même page et ce sont les mêmes valeurs.",[10,57,58],{},"Tout ce qui s'y trouve est l'une de deux choses. Une adresse, qui dit où vit\nvotre projet. Ou une clé, qui décide de ce qu'une requête a le droit de faire\nune fois arrivée. La page les liste ensemble, dans une seule colonne, dans la\nmême typographie.",[29,60,62],{"id":61},"je-nai-jamais-configuré-supabase-quel-projet-est-le-mien","Je n'ai jamais configuré Supabase. Quel projet est le mien ?",[10,64,65],{},"Lisez l'adresse que votre app utilise déjà. La réponse est dedans.",[10,67,68,69,72,73,76],{},"Chaque projet Supabase possède une ",[37,70,71],{},"référence"," : une courte chaîne aléatoire\nqui est aussi la première partie de l'adresse du projet,\n",[14,74,75],{},"https:\u002F\u002Fyourreference.supabase.co",". Votre app envoie une requête à cette\nadresse à chaque chargement de page, la chaîne est donc déjà dans votre app, et\nc'est la même que celle par laquelle le tableau de bord identifie votre projet.",[10,78,79],{},"Trois endroits où la trouver sans demander à personne :",[81,82,83,90,100],"ul",{},[84,85,86,89],"li",{},[37,87,88],{},"Dans votre builder."," Lovable, Bolt, v0 et les autres affichent le projet\nSupabase connecté quelque part dans les réglages ou le panneau d'intégrations\nde votre projet.",[84,91,92,95,96,99],{},[37,93,94],{},"Dans votre navigateur."," Ouvrez votre app en ligne, appuyez sur F12, passez\nà l'onglet Network et rechargez la page. Les requêtes qui partent vers quelque\nchose en ",[14,97,98],{},".supabase.co"," portent la référence dans leur adresse.",[84,101,102,105],{},[37,103,104],{},"Dans le code source de la page",", si votre app écrit l'adresse dans le HTML\nplutôt que dans un fichier de script.",[10,107,108],{},"Connectez-vous ensuite sur supabase.com et comparez cette référence à votre\nliste de projets. Les builders connectent Supabase via votre propre compte, le\nprojet dort donc en général dans un tableau de bord que vous avez créé une fois\nsans jamais y revenir. Une fois entré dans un projet, la référence apparaît dans\nla barre d'adresse du navigateur, ce qui vous permet de confirmer que vous êtes\ndans le bon avant d'en copier quoi que ce soit.",[29,110,112],{"id":111},"les-quatre-choses-sur-cette-page","Les quatre choses sur cette page",[10,114,115],{},"Une adresse et trois clés. Deux ont leur place dans votre app, deux ne quittent\njamais le tableau de bord.",[117,118,119,138],"table",{},[120,121,122],"thead",{},[123,124,125,129,132,135],"tr",{},[126,127,128],"th",{},"Ce que vous voyez",[126,130,131],{},"Ce que c'est",[126,133,134],{},"Où cela va",[126,136,137],{},"En cas de fuite",[139,140,141,165,189,213],"tbody",{},[123,142,143,149,155,162],{},[144,145,146],"td",{},[37,147,148],{},"Project URL",[144,150,151,152,154],{},"L'adresse de votre projet, ",[14,153,75],{},". Elle dit où, jamais qui.",[144,156,157],{},[158,159,161],"key-verdict",{"type":160},"safe","Dans votre app",[144,163,164],{},"Rien. Elle part déjà vers chaque visiteur à chaque chargement de page.",[123,166,167,176,182,186],{},[144,168,169,172,173],{},[37,170,171],{},"Publishable key"," ",[14,174,175],{},"sb_publishable_…",[144,177,178,179,181],{},"Nomme le projet et ne porte aucun droit propre. Appelée ",[14,180,16],{}," sur un projet ancien.",[144,183,184],{},[158,185,161],{"type":160},[144,187,188],{},"Rien en soi. Elle lit exactement ce que vos règles Row Level Security autorisent.",[123,190,191,199,204,210],{},[144,192,193,172,196],{},[37,194,195],{},"Secret key",[14,197,198],{},"sb_secret_…",[144,200,201,202,181],{},"Lit et écrit chaque ligne de chaque table, quoi que disent vos règles. Appelée ",[14,203,20],{},[144,205,206],{},[158,207,209],{"type":208},"danger","Serveur uniquement",[144,211,212],{},"Chaque ligne de chaque table, pour qui l'a trouvée.",[123,214,215,220,223,228],{},[144,216,217],{},[37,218,219],{},"JWT secret",[144,221,222],{},"Signe les jetons qui disent qui est connecté. Appelée JWT signing keys sur un projet récent.",[144,224,225],{},[158,226,227],{"type":208},"Reste chez Supabase",[144,229,230],{},"Quelqu'un peut fabriquer un jeton prétendant être n'importe lequel de vos utilisateurs, administrateur compris.",[232,233],"diagram",{"alt":234,"caption":235,"src":236},"Un panneau de réglages à quatre lignes. L'URL et la clé anon sont cochées et leurs valeurs affichées en entier. Sous un trait épais, la clé service_role et la valeur JWT sont barrées et leurs valeurs couvertes par des points.","Quatre valeurs, une page. Supabase ne trace aucun trait entre elles, et le masque sur les deux du bas est le seul indice que vous obtenez.","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Ffour-values-one-page-1600x720.png",[10,238,239],{},"Il y a un raccourci posé sur la page elle-même. Supabase affiche l'URL du projet\net la clé publiable là où vous pouvez les lire, et couvre la clé secrète et la\nvaleur JWT de points jusqu'à ce que vous demandiez à les voir. Les deux qu'il\ncouvre sont exactement les deux qui n'ont jamais leur place dans votre app.",[29,241,243],{"id":242},"où-se-trouve-lurl-de-mon-projet-supabase","Où se trouve l'URL de mon projet Supabase ?",[10,245,246,247,249,250,40],{},"À deux endroits, et vous en avez probablement un sous les yeux. Le tableau de\nbord l'imprime en haut de ",[37,248,39],{},", sous le libellé Project URL.\nLa barre d'adresse de votre navigateur montre la même chaîne dès que votre appli\nparle à Supabase, sous la forme ",[14,251,75],{},[10,253,254],{},"Dans le code elle porte l'un de trois noms, et les trois contiennent cette même\nchaîne :",[81,256,257,263,269],{},[84,258,259,262],{},[14,260,261],{},"VITE_SUPABASE_URL"," dans une appli construite avec Vite, ce qui couvre\nl'essentiel de ce que produisent Lovable et Bolt",[84,264,265,268],{},[14,266,267],{},"NEXT_PUBLIC_SUPABASE_URL"," dans une appli Next.js",[84,270,271,274],{},[14,272,273],{},"SUPABASE_URL"," sur un serveur, dans une edge function ou dans un script",[10,276,277,278,281],{},"Le milieu, ",[14,279,280],{},"yourreference",", est la référence de votre projet. C'est la chaîne par\nlaquelle le tableau de bord identifie votre projet, et celle à comparer quand\nvous avez plusieurs projets et aucune idée duquel appartient à cette appli.",[10,283,284],{},"C'est une adresse plutôt qu'un secret, et c'est pour cela qu'elle est affichée en\nclair à côté de la clé publiable.",[29,286,288],{"id":287},"où-est-la-clé-service_role-et-quest-ce-que-supabase_service_role_key","Où est la clé service_role, et qu'est-ce que SUPABASE_SERVICE_ROLE_KEY ?",[10,290,291,292,294,295,297,298,301],{},"Sur la même page que tout le reste. Ouvrez ",[37,293,39],{}," et cherchez la\nligne ",[14,296,20],{},", ou ",[14,299,300],{},"secret"," sur un projet créé récemment. Contrairement à\nl'URL et à la clé publiable, sa valeur reste derrière un bouton d'affichage tant\nque vous ne la demandez pas.",[10,303,304],{},"Ce bouton est le seul indice que le tableau de bord vous donne que celle-ci est\ndifférente, et il mérite d'être pris au sérieux : Supabase masque exactement les\nvaleurs qui ne doivent jamais atteindre un navigateur.",[10,306,307,310,311,314,315,318,319,322],{},[14,308,309],{},"SUPABASE_SERVICE_ROLE_KEY"," est un nom de variable plutôt qu'une deuxième clé :\nderrière lui se trouve la valeur que vous venez d'afficher. Vous la croiserez\ndans un fichier ",[14,312,313],{},".env",", dans les réglages d'environnement de votre hébergeur, ou\ndans les secrets d'une edge function. Ce qui compte, c'est le préfixe devant.\nUne variable nommée ",[14,316,317],{},"VITE_SUPABASE_SERVICE_ROLE_KEY"," ou\n",[14,320,321],{},"NEXT_PUBLIC_SUPABASE_SERVICE_ROLE_KEY"," est compilée dans le JavaScript que vos\nvisiteurs téléchargent, donc la clé est publique dès le déploiement. Ces\npréfixes sont des instructions de publication, pas des oublis.",[10,324,325],{},"Sa place, c'est une edge function, un gestionnaire de webhook, une tâche\nplanifiée ou un script de migration : partout où le code tourne sur une machine\nque vous contrôlez et où aucun visiteur ne peut ouvrir le fichier. C'est la clé\nqui ignore complètement Row Level Security, elle lit donc chaque ligne de chaque\ntable quoi que disent vos règles.",[10,327,328,329,334],{},"Si vous n'êtes pas certain que la vôtre est restée sur le serveur, notre\n",[330,331,333],"a",{"href":332},"\u002Fsecurity-scanner","analyseur de sécurité de site gratuit"," lit votre site en\nligne depuis l'extérieur et nomme les clés qu'il trouve, en une vingtaine de\nsecondes.",[29,336,338],{"id":337},"de-quelle-clé-mon-app-a-t-elle-besoin","De quelle clé mon app a-t-elle besoin ?",[10,340,341],{},"L'URL du projet et la clé publiable. Rien d'autre, jamais.",[10,343,344],{},"Votre app tourne dans le navigateur de vos visiteurs et parle à Supabase depuis\nlà, ces deux valeurs partent donc vers chaque visiteur par construction. Ce\nn'est pas une fuite et cela ne l'a jamais été. Ce qui empêche un inconnu de lire\ntoute votre base avec une clé publiable, c'est Row Level Security : les règles\nqui décident, ligne par ligne, qui a le droit de voir quoi.",[10,346,347,348,352,353,40],{},"Ce sont donc ces règles qu'il faut vérifier quand vous vous inquiétez, et\n",[330,349,351],{"href":350},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","les activer n'est pas la même chose qu'être protégé",".\nLa version longue de pourquoi une clé est sûre en public se trouve dans\n",[330,354,356],{"href":355},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","quelles clés API sont sûres dans votre frontend",[29,358,360],{"id":359},"comment-savoir-quelle-clé-mon-app-a-réellement-embarquée","Comment savoir quelle clé mon app a réellement embarquée ?",[10,362,363],{},"Le tableau de bord ne vous le dira pas. Il liste les clés que votre projet\npossède, pas celle qui est partie dans votre app.",[10,365,366],{},"Ce sont deux questions différentes, et seule la seconde peut vous coûter cher.\nUn projet peut avoir une page de réglages parfaitement ordinaire et avoir quand\nmême sa clé secrète collée dans un fichier que n'importe qui peut ouvrir. Pour y\nrépondre, il faut lire la clé qui est réellement dans l'app.",[10,368,369,172,372,375,376,379],{},[37,370,371],{},"Sur un projet récent, lisez les premiers caractères.",[14,373,374],{},"sb_publishable_"," est\ncelle qui a sa place là. ",[14,377,378],{},"sb_secret_"," est celle dont il faut s'occuper\naujourd'hui.",[10,381,382,172,385,387,388,390,391,394,395,40],{},[37,383,384],{},"Sur un projet ancien, il faut regarder à l'intérieur de la clé.",[14,386,16],{}," et\n",[14,389,20],{}," sont des JWT : trois blocs séparés par des points, dont celui du\nmilieu se décode en texte parfaitement lisible. Il porte un champ ",[14,392,393],{},"role",", et ce\nseul mot fait toute la différence entre les deux.\n",[330,396,397],{"href":355},"Comment le lire",[232,399],{"alt":400,"caption":401,"src":402},"À gauche, la page de réglages listant quatre valeurs, avec les lignes anon et service_role mises en évidence. Deux traits pointillés partent de ces deux lignes et convergent vers un unique emplacement mis en évidence dans un bloc de code à droite, marqué d'un point d'interrogation.","Le tableau de bord vous montre quelles clés existent. Laquelle votre app a embarquée est une question à laquelle seule votre app peut répondre.","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fwhat-exists-vs-what-shipped-1600x700.png",[10,404,405,406,40],{},"Si vous préférez ne pas parcourir votre app à la main, notre scan gratuit lit\nvotre site en ligne depuis l'extérieur et nomme les clés qu'il voit, ainsi que\nla réponse de vos tables à un inconnu qui demande. Cela prend une vingtaine de\nsecondes et ne demande aucun compte : ",[330,407,409],{"href":408},"\u002F#scan","scanner votre app",[29,411,413],{"id":412},"et-si-la-clé-secrète-est-déjà-dans-mon-app","Et si la clé secrète est déjà dans mon app ?",[10,415,416],{},"Occupez-vous de la clé elle-même avant de toucher au moindre code, et sur\nSupabase cela ne veut peut-être pas dire ce que vous croyez.",[10,418,419,420,422],{},"Le conseil habituel est de faire tourner la clé : en générer une nouvelle,\nrévoquer l'ancienne, et la valeur qui a fuité cesse de fonctionner. Cela reste\nvrai pour les nouvelles clés. Un projet peut détenir plusieurs clés\n",[14,421,378],{}," en même temps et les révoquer une par une, remplacer l'une d'elles\nne signifie donc plus une minute pendant laquelle tout ce qui s'en servait est\ncassé.",[10,424,425,426,432,433,435,436,440],{},"Pour la paire d'origine, cela ne tient plus du tout. Les notes de dépannage de\nSupabase indiquent qu'\n",[330,427,431],{"href":428,"rel":429},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Ftroubleshooting\u002Frotating-anon-service-and-jwt-secrets-1Jq6yd",[430],"nofollow","il n'est plus possible de faire tourner les anciens secrets anon, service_role et JWT",".\nNeutraliser une ancienne clé ",[14,434,20],{}," qui a fuité passe par la création\ndes nouvelles clés, le basculement de votre app et de votre code serveur, puis\nla désactivation de l'ancienne paire.\n",[330,437,439],{"href":438},"\u002Fblog\u002Fsupabase-new-api-keys","Ce que cette migration implique"," tient en quelques\nétapes dans le tableau de bord et une valeur échangée dans votre app, ce qui est\nnettement plus facile un après-midi tranquille que le jour où vous en avez\nbesoin.",[442,443,445],"callout",{"type":444},"warn",[10,446,447,450],{},[37,448,449],{},"Supprimer la clé de votre code ne referme pas la porte."," L'ancienne valeur\nest toujours dans votre historique de versions, dans tout déploiement que vous\nn'avez pas reconstruit depuis, et dans la copie en cache de votre page détenue\npar tous ceux qui l'ont chargée pendant que la clé était active. Quiconque a\ngardé l'une de ces copies peut encore s'en servir demain contre votre base.",[29,452,454],{"id":453},"ce-quil-faut-faire-maintenant","Ce qu'il faut faire maintenant",[456,457,458],"key-takeaways",{},[81,459,460,469,472,482,485],{},[84,461,462,463,465,466,468],{},"Ouvrez ",[37,464,39],{}," dans votre projet. Si vous ne trouvez pas le projet, sortez la référence de ",[14,467,75],{}," et comparez-la à la liste de votre tableau de bord.",[84,470,471],{},"Mettez l'URL du projet et la clé publiable dans votre app. Ces deux-là, et rien d'autre.",[84,473,474,475,477,478,481],{},"Lisez la clé que votre app a réellement embarquée. ",[14,476,378],{}," en tête, ou ",[14,479,480],{},"\"role\": \"service_role\""," à l'intérieur d'une ancienne, c'est la trouvaille à traiter aujourd'hui.",[84,483,484],{},"Si une clé secrète est dans votre frontend, neutralisez-la avant de modifier quoi que ce soit. Sur un projet ancien, cela veut dire créer les nouvelles clés et désactiver l'ancienne paire, et il n'y a pas de bouton unique pour cela.",[84,486,487],{},"Regardez Row Level Security tant que vous êtes déjà dans le tableau de bord. Une clé publiable n'est sûre qu'à cause de ces règles, et sans elles elle lit toute votre base.",[10,489,490,491,495,496,40],{},"Si vous préférez traiter cela comme une liste, la\n",[330,492,494],{"href":493},"\u002Fchecklist","checklist de sécurité en 10 minutes"," couvre ce point et les autres\nchoses à désactiver dans une app fraîchement lancée, et nous avons un guide en\nlangage clair pour les ",[330,497,499],{"href":498},"\u002Fis-your-supabase-app-safe","apps Supabase",{"title":501,"searchDepth":502,"depth":502,"links":503},"",3,[504,506,507,508,509,510,511,512,513],{"id":31,"depth":505,"text":32},2,{"id":61,"depth":505,"text":62},{"id":111,"depth":505,"text":112},{"id":242,"depth":505,"text":243},{"id":287,"depth":505,"text":288},{"id":337,"depth":505,"text":338},{"id":359,"depth":505,"text":360},{"id":412,"depth":505,"text":413},{"id":453,"depth":505,"text":454},"Bases de la sécurité","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fcover-1200x630.png","Un panneau de réglages : une URL et une clé anon affichées en clair, une clé service_role et une valeur JWT masquées par des points.","L'URL du projet, la clé anon et la clé service_role tiennent sur une page du tableau de bord. Voici où elle est, et laquelle des quatre va dans votre app.",false,"md",[521,524,527,530,533,536],{"q":522,"a":523},"Où est la clé service_role dans Supabase ?","Dans le tableau de bord, à l'intérieur de votre projet, sous Settings → API Keys. Sur un projet ancien elle est listée sous le nom service_role et cachée derrière un bouton d'affichage ; sur un projet récent c'est une clé secrète qui commence par sb_secret_. Les guides plus anciens appellent la même page Settings → API.",{"q":525,"a":526},"À quoi ressemble une clé anon Supabase ?","Sur un projet récent, c'est une longue chaîne qui commence par sb_publishable_. Sur un projet ancien, c'est un JWT : trois blocs de caractères séparés par des points, commençant par eyJ, et long de quelques centaines de caractères. La clé service_role a exactement la même allure, et c'est pour cela que les deux sont confondues.",{"q":528,"a":529},"L'URL de mon projet Supabase est-elle secrète ?","Non. C'est l'adresse à laquelle votre app envoie chaque requête, elle part donc vers chaque visiteur par construction et il n'existe aucune version de votre app où elle serait cachée. La trouver n'est pas une trouvaille. Ce qui décide si un inconnu peut lire vos données, c'est Row Level Security, pas le fait qu'il connaisse votre adresse.",{"q":531,"a":532},"Mon app a été construite pour moi et je n'ai jamais ouvert Supabase. Comment j'entre ?","Trouvez d'abord la référence de votre projet : la courte chaîne aléatoire dans l'adresse que votre app appelle déjà, https:\u002F\u002Fyourreference.supabase.co. Les builders connectent Supabase via votre propre compte, le projet dort donc en général dans un tableau de bord que vous avez créé une fois sans jamais y revenir. Connectez-vous sur supabase.com avec ce compte et comparez la référence à la liste des projets.",{"q":534,"a":535},"Puis-je faire tourner une clé service_role qui a fuité ?","Seulement s'il s'agit d'une des nouvelles clés sb_secret_, dont vous pouvez détenir plusieurs et que vous révoquez une par une. Supabase a indiqué qu'il n'est plus possible de faire tourner les anciens secrets anon, service_role et JWT. Neutraliser une ancienne clé qui a fuité passe donc par la création des nouvelles clés, le basculement de votre app et de votre code serveur, puis la désactivation de l'ancienne paire.",{"q":537,"a":538},"Qu'est-ce que SUPABASE_SERVICE_ROLE_KEY ?","C'est le nom de variable d'environnement sous lequel votre code range la clé secrète, celle qui s'appelle service_role sur un ancien projet et sb_secret_ sur un plus récent. Sa place est uniquement dans la configuration côté serveur : une edge function, un gestionnaire de webhook, une tâche planifiée. Tout ce qui porte un préfixe VITE_ ou NEXT_PUBLIC_ est compilé dans le bundle du navigateur, donc une clé service_role derrière un tel nom est publique dès le déploiement.","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fcard-800x500.png",[541,542,543,544,545,546,547],"où est la clé service_role supabase","trouver clé service_role supabase","trouver clé anon supabase","clés api supabase","format clé anon supabase","url projet supabase","récupérer clé supabase",{},true,"Où est la clé service_role de Supabase ?","\u002Fblog\u002Fwhere-to-find-supabase-api-keys","2026-08-28",{"title":5,"description":517},"blog\u002Fwhere-to-find-supabase-api-keys",[556,557,558],"Toutes les clés Supabase, service_role comprise, sont sur une seule page : ouvrez votre projet dans le tableau de bord, puis Settings → API Keys.","Quatre valeurs y figurent. L'URL du projet et la clé publiable ont leur place dans votre app ; la clé secrète et la valeur JWT jamais.","Cette page vous dit quelles clés existent. Elle ne vous dit pas laquelle est partie dans votre app, et seule la seconde question peut vous coûter cher.","2026-09-05","sR1TgGThDpNN1ublW4ga_chI-Y6Tj2hIg7r-SbpzQXo",[562,568,573,579,585,591,598,604,610,616,617,623,629,635,641,647,653,659,665,670,675,681,686,691,697],{"path":563,"title":564,"description":565,"published":566,"category":514,"image":567,"draft":518},"\u002Fblog\u002Fsupabase-security-checker","Supabase security checker : les cinq vérifications à faire soi-même","Un Supabase security checker lit votre app publiée plutôt que les réglages de votre projet. Voici les cinq vérifications, et comment faire chacune vous-même.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":569,"title":570,"description":571,"published":559,"category":514,"image":572,"draft":518},"\u002Fblog\u002Fvibe-coding-security-scanner","Scanner de sécurité vibe coding : ce qu’un scan d’URL rate","Un scanner de sécurité vibe coding lit votre app en ligne depuis l’extérieur. Ce qu’il couvre, les quatre choses qu’il ne voit pas, et comment lire le résultat.","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":574,"title":575,"description":576,"published":577,"category":514,"image":578,"draft":518},"\u002Fblog\u002Fmissing-security-headers","En-têtes de sécurité manquants : quand cela compte","Les en-têtes de sécurité manquants sont notre constat le plus fréquent. Contre quoi ils protègent, et quand ils comptent le moins dans votre rapport.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":580,"title":581,"description":582,"published":583,"category":514,"image":584,"draft":518},"\u002Fblog\u002Fopenai-api-key-exposed-in-frontend","Votre clé API OpenAI est exposée dans votre frontend. Changez-la.","Une clé API OpenAI exposée dans votre frontend n'accepte aucune restriction de domaine. C'est un jeton au porteur : qui la trouve dépense votre argent.","2026-09-03","\u002Fblog\u002Fopenai-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":586,"title":587,"description":588,"published":589,"category":514,"image":590,"draft":518},"\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps","Clé API exposée dans le frontend : ce que 30 998 applis livrent","Une clé API exposée dans votre frontend est le plus souvent une clé Google Maps. Nous avons scanné 30 998 applis vibe-codées et compté ce qui fuit vraiment.","2026-09-02","\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps\u002Fcard-800x500.png",{"path":592,"title":593,"description":594,"published":595,"category":596,"image":597,"draft":518},"\u002Fblog\u002Fsupabase-backup-tools-compared","Outils de sauvegarde Supabase comparés, le nôtre compris","Quatre familles d'outil de sauvegarde Supabase, ce que chacun copie vraiment, et quand une GitHub Action gratuite bat le fait de payer, nous compris.","2026-09-01","Backups","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",{"path":599,"title":600,"description":601,"published":602,"category":514,"image":603,"draft":518},"\u002Fblog\u002Freplit-secrets-explained","Utiliser les secrets sur Replit, et ce qui est publié quand même","Utiliser les secrets sur Replit et le cas que l’outil ne couvre pas : une clé que lit votre code navigateur part avec votre application publiée.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":605,"title":606,"description":607,"published":608,"category":596,"image":609,"draft":518},"\u002Fblog\u002Fback-up-supabase-free-tier","Sauvegardes du plan gratuit Supabase : en faire une sans terminal","Le plan gratuit de Supabase ne fait aucune sauvegarde : la copie vient de vous. Comment la faire depuis le tableau de bord, et ce que le CSV oublie.","2026-08-30","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",{"path":611,"title":612,"description":613,"published":614,"category":514,"image":615,"draft":518},"\u002Fblog\u002Fis-supabase-secure","Supabase est-il sûr ? Oui. Votre projet est une autre question","Supabase est-il sûr ? La plateforme est auditée, chiffrée et testée en intrusion. Sa documentation dit où cela s'arrête et où vos réglages commencent.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":551,"title":5,"description":517,"published":552,"category":514,"image":539,"draft":518},{"path":618,"title":619,"description":620,"published":621,"category":514,"image":622,"draft":518},"\u002Fblog\u002Fnew-row-violates-row-level-security-policy","New row violates row-level security policy sur Supabase : et après ?","\"New row violates row-level security policy\" signifie que Supabase a refusé une écriture. Le correctif rapide rouvre la table à tout le monde.","2026-08-27","\u002Fblog\u002Fnew-row-violates-row-level-security-policy\u002Fcard-800x500.png",{"path":624,"title":625,"description":626,"published":627,"category":514,"image":628,"draft":518},"\u002Fblog\u002Fcors-wildcard-security-risk","Un joker CORS est-il un risque de sécurité ? Rarement.","Un joker CORS est-il un risque de sécurité ? C'est souvent le réglage par défaut de votre builder, et il ne livre rien que votre serveur ne donnait déjà.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":630,"title":631,"description":632,"published":633,"category":596,"image":634,"draft":518},"\u002Fblog\u002Fsupabase-branching-is-not-a-backup","Le branching Supabase n'est pas une sauvegarde de vos données.","Pourquoi le branching Supabase n'est pas une sauvegarde : une branche démarre sans vos données, et un merge ne déplace que le schéma. À quoi il sert vraiment.","2026-08-25","\u002Fblog\u002Fsupabase-branching-is-not-a-backup\u002Fcard-800x500.png",{"path":636,"title":637,"description":638,"published":639,"category":596,"image":640,"draft":518},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","Restaurer une sauvegarde Supabase, et ce qui casse après","Restaurer une sauvegarde Supabase depuis le tableau de bord ou un fichier de dump, ce que la restauration remplace et pourquoi votre app peut rester cassée.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":642,"title":643,"description":644,"published":645,"category":514,"image":646,"draft":518},"\u002Fblog\u002Fsupabase-storage-bucket-public","Votre bucket Supabase Storage est public. Est-ce un problème ?","Un bucket Supabase Storage public signifie que celui qui a l'URL d'un fichier peut l'ouvrir. Il ne signifie pas que quelqu'un peut lister ce qu'il contient.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":648,"title":649,"description":650,"published":651,"category":514,"image":652,"draft":518},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","Une clé API Google dans votre frontend, est-ce un problème ?","Une clé API Google exposée dans votre frontend est la clé que notre scanner trouve le plus souvent, et en général tout va bien. Un réglage gratuit tranche.","2026-08-22","\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":654,"title":655,"description":656,"published":657,"category":596,"image":658,"draft":518},"\u002Fblog\u002Fai-agent-deleted-my-database","Un agent IA a supprimé mes données Supabase. Que puis-je récupérer ?","Un agent IA a supprimé des données de votre base. Ce que vous pouvez récupérer était déjà décidé avant, et les prochaines minutes décident du reste.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":660,"title":661,"description":662,"published":663,"category":514,"image":664,"draft":518},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","Qui peut lire votre base Supabase ? Nous avons testé 3 680 apps","N'importe qui peut-il lire votre base de données Supabase sans se connecter ? Nous avons scanné 30 998 apps en ligne créées avec des builders IA.","2026-08-18","\u002Fblog\u002Fcan-anyone-read-your-supabase-database\u002Fcard-800x500.png",{"path":666,"title":667,"description":668,"published":663,"category":514,"image":669,"draft":518},"\u002Fblog\u002Fsource-maps-exposed-in-production","Source maps exposées : votre app publie son code original","Une source map exposée laisse n'importe qui lire le code original de votre app, commentaires compris. Le test de 30 secondes, et ce qui compte vraiment.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":438,"title":671,"description":672,"published":673,"category":514,"image":674,"draft":518},"Les nouvelles clés API Supabase : laquelle va dans votre app ?","Supabase a remplacé anon et service_role par des clés publiables et secrètes. Laquelle a sa place dans votre app, et laquelle jamais ?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":676,"title":677,"description":678,"published":679,"category":596,"image":680,"draft":518},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","Supabase sauvegarde-t-il ma base de données ? Cela dépend du plan.","Supabase sauvegarde-t-il votre base de données ? Chaque jour sur les plans payants, jamais sur le gratuit. Comment savoir ce que vous avez vraiment.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":350,"title":682,"description":683,"published":684,"category":514,"image":685,"draft":518},"Supabase Row Level Security est activé. La table reste publique.","Activer Supabase Row Level Security ne protège pas une table. Ce sont vos politiques, et celle qui a réparé votre app laisse peut-être entrer tout le monde.","2026-08-10","\u002Fblog\u002Fsupabase-rls-on-but-table-still-public\u002Fcard-800x500.png",{"path":687,"title":688,"description":689,"published":684,"category":596,"image":690,"draft":518},"\u002Fblog\u002Fversion-history-is-not-a-backup","L'historique des versions n'est pas une sauvegarde de vos données.","Lovable et Bolt tiennent un historique des versions de votre code. Votre base de données est un service à part, et revenir en arrière ne la ramène pas.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":692,"title":693,"description":694,"published":695,"category":596,"image":696,"draft":518},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Trois façons de sauvegarder une base Supabase, et ce qui manque","Le tableau de bord, pg_dump et un service géré. Ce que chacun enregistre, ce qu'il laisse de côté sans le dire, et lequel survit à la perte du compte.","2026-08-09","\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database\u002Fcard-800x500.png",{"path":355,"title":698,"description":699,"published":695,"category":514,"image":700,"draft":518},"Quelles clés API sont sûres côté navigateur, et lesquelles non","Votre clé anon Supabase est faite pour être publique. Votre clé service_role non, et elle ignore toutes les règles que vous posez. Comment les distinguer.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1788681836865]