Docs
La Recherche⌘ K
  • Accueil
  • À propos de The Graph
  • Réseaux pris en charge
  • Contrats du Protocole
  • Subgraphs
    • Substreams
      • Token API
        • AI Suite
          • Indexing
            • Resources
              Subgraphs > Guides pratiques

              3 minutes

              Comment sécuriser les clés d'API en utilisant les composants serveur de Next.js

              Aperçu

              Nous pouvons utiliser les Composants du serveur Next.js⁠ pour sécuriser correctement notre clé API et éviter qu’elle ne soit exposée dans le frontend de notre dapp. Pour renforcer la sécurité de notre clé API, nous pouvons également restreindre notre clé API à certains subgraphs ou domaines dans Subgraph Studio.

              Dans ce cookbook, nous allons voir comment créer un composant serveur Next.js qui interroge un subgraph tout en cachant la clé API du frontend.

              Mise en garde

              • Les composants serveur de Next.js ne protègent pas les clés API contre les attaques de déni de service.
              • Les passerelles de The Graph Network disposent de stratégies de détection et d’atténuation des attaques de déni de service, cependant, l’utilisation des composants serveur peut affaiblir ces protections.
              • Les composants serveur de Next.js introduisent des risques de centralisation car le serveur peut tomber en panne.

              Pourquoi est-ce nécessaire

              Dans une application React standard, les clés API incluses dans le code frontend peuvent être exposées du côté client, posant un risque de sécurité. Bien que les fichiers .env soient couramment utilisés, ils ne protègent pas complètement les clés car le code de React est exécuté côté client, exposant ainsi la clé API dans les headers. Les composants serveur Next.js résolvent ce problème en gérant les opérations sensibles côté serveur.

              Utiliser le rendu côté client pour interroger un subgraph

              rendu côté client

              Prérequis

              • Une clé API provenant de Subgraph Studio
              • Une connaissance de base de Next.js et React.
              • Un projet Next.js existant qui utilise l’App Router⁠.

              Guide étape par étape

              Étape 1 : Configurer les Variables d’Environnement

              1. À la racine de notre projet Next.js, créer un fichier .env.local .
              2. Ajouter notre clé API :: API_KEY=<cle_api_ici>.

              Étape 2 : Créer un Composant Serveur

              1. Dans notre répertoirecomponents , créer un nouveau fichier, ServerComponent.js.
              2. Utiliser le code exemple fourni pour configurer le composant serveur.

              Étape 3 : Implémenter la Requête API Côté Serveur

              Dans ServerComponent.js, ajouter le code suivant :

              1const API_KEY = process.env.API_KEY23export default async function ServerComponent() {4  const response = await fetch(5    `https://gateway-arbitrum.network.thegraph.com/api/${API_KEY}/subgraphs/id/HUZDsRpEVP2AvzDCyzDHtdc64dyDxx8FQjzsmqSg4H3B`,6    {7      method: 'POST',8      headers: {9        'Content-Type': 'application/json',10      },11      body: JSON.stringify({12        query: /* GraphQL */ `13          {14            factories(first: 5) {15              id16              poolCount17              txCount18              totalVolumeUSD19            }20          }21        `,22      }),23    },24  )2526  const responseData = await response.json()27  const data = responseData.data2829  return (30    <div>31      <h1>Server Component</h1>32      {data ? (33        <ul>34          {data.factories.map((factory) => (35            <li key={factory.id}>36              <p>ID: {factory.id}</p>37              <p>Pool Count: {factory.poolCount}</p>38              <p>Transaction Count: {factory.txCount}</p>39              <p>Total Volume USD: {factory.totalVolumeUSD}</p>40            </li>41          ))}42        </ul>43      ) : (44        <p>Loading data...</p>45      )}46    </div>47  )48}

              Étape 4 : Utiliser le Composant Serveur

              1. Dans notre fichier de page (par exemple, pages/index.js), importer ServerComponent.
              2. Rendu du composant:
              1import ServerComponent from './components/ServerComponent'23export default function Home() {4  return (5    <main>6      <ServerComponent />7    </main>8  )9}

              Étape 5 : Lancer et tester notre Dapp

              Démarrez notre application Next.js en utilisant npm run dev. Vérifiez que le composant serveur récupère les données sans exposer la clé API.

              Rendu côté serveur

              Conclusion

              En utilisant les composants serveur de Next.js, nous avons effectivement caché la clé API du côté client, améliorant ainsi la sécurité de notre application. Cette méthode garantit que les opérations sensibles sont traitées côté serveur, à l’abri des vulnérabilités potentielles côté client. Enfin, n’oubliez pas d’explorer d’autres mesures de sécurité des clés d’API pour renforcer encore davantage la sécurité de vos clés d’API.

              ⁠Edit on GitHub⁠

              Catégoriser les marketplaces NFT à l’aide d’EnumsInterroger les données Polymarket
              On this page
              • Aperçu
              • Mise en garde
              • Pourquoi est-ce nécessaire
              • Utiliser le rendu côté client pour interroger un subgraph
              • Prérequis
              • Guide étape par étape
              • Étape 1 : Configurer les Variables d’Environnement
              • Étape 2 : Créer un Composant Serveur
              • Étape 3 : Implémenter la Requête API Côté Serveur
              • Étape 4 : Utiliser le Composant Serveur
              • Étape 5 : Lancer et tester notre Dapp
              • Conclusion
              The GraphStatusTestnetActifs de la MarqueForumSécuritéPolitique de confidentialitéConditions d'utilisation