Tutoriels

Sécurisation des informations d'identification CaptchaAI dans les variables d'environnement

Le codage en dur des clés API dans le code source signifie que toute personne ayant accès au référentiel – ou toute personne qui trouve votre code sur un dépôt public – possède votre clé. Les variables d'environnement gardent les informations d'identification hors du code, du contrôle de version et des journaux.


Fichier .env (développement local)

Créez un fichier .env à la racine de votre projet :

CAPTCHAAI_API_KEY=your_actual_api_key_here

Ajoutez-le immédiatement à .gitignore :

# .gitignore
.env
.env.local
.env.production

Python (python-dotenv)

pip install python-dotenv
import os
from dotenv import load_dotenv

load_dotenv()

API_KEY = os.environ["CAPTCHAAI_API_KEY"]

# Use in API calls
import requests
resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY,
    "method": "userrecaptcha",
    "googlekey": "6Le-SITEKEY",
    "pageurl": "https://example.com",
    "json": "1",
})
print(resp.json())

JavaScript (dotenv)

npm install dotenv
require('dotenv').config();

const API_KEY = process.env.CAPTCHAAI_API_KEY;

if (!API_KEY) {
  console.error('CAPTCHAAI_API_KEY not set');
  process.exit(1);
}

// Use in API calls
const axios = require('axios');
const resp = await axios.post('https://ocr.captchaai.com/in.php', null, {
  params: {
    key: API_KEY,
    method: 'userrecaptcha',
    googlekey: '6Le-SITEKEY',
    pageurl: 'https://example.com',
    json: 1,
  },
});
console.log(resp.data);

Variables d'environnement système

Définissez les variables au niveau du système d'exploitation au lieu d'utiliser des fichiers .env :

Linux/MacOS

export CAPTCHAAI_API_KEY="your_actual_api_key_here"

# Persist across sessions — add to ~/.bashrc or ~/.zshrc
echo 'export CAPTCHAAI_API_KEY="your_actual_api_key_here"' >> ~/.bashrc

Windows (PowerShell)

$env:CAPTCHAAI_API_KEY = "your_actual_api_key_here"

# Persist permanently
[System.Environment]::SetEnvironmentVariable("CAPTCHAAI_API_KEY", "your_actual_api_key_here", "User")

Docker

Variable d'environnement dans l'exécution de Docker

docker run -e CAPTCHAAI_API_KEY="your_key" my-scraper

Docker Composer

# docker-compose.yml
services:
  scraper:
    image: my-scraper
    environment:

      - CAPTCHAAI_API_KEY=${CAPTCHAAI_API_KEY}

Le ${CAPTCHAAI_API_KEY} fait référence à la variable d'environnement de l'hôte - la clé n'apparaît jamais dans le fichier de composition.

Secrets Docker (Essaim)

echo "your_actual_api_key_here" | docker secret create captchaai_key -
# docker-compose.yml (Swarm mode)
services:
  scraper:
    image: my-scraper
    secrets:

      - captchaai_key
secrets:
  captchaai_key:
    external: true

Lire en code :

with open("/run/secrets/captchaai_key") as f:
    API_KEY = f.read().strip()

Pipelines CI/CD

Actions GitHub

# .github/workflows/scrape.yml
jobs:
  scrape:
    runs-on: ubuntu-latest
    steps:

      - uses: actions/checkout@v4
      - run: python scraper.py
        env:
          CAPTCHAAI_API_KEY: ${{ secrets.CAPTCHAAI_API_KEY }}

Ajoutez le secret dans Paramètres → Secrets et variables → Actions → Nouveau secret du référentiel.

GitLabCI

# .gitlab-ci.yml
scrape:
  script:

    - python scraper.py
  variables:
    CAPTCHAAI_API_KEY: $CAPTCHAAI_API_KEY

Ajoutez la variable dans Paramètres → CI/CD → Variables avec l'option "Masqué" activée.


Validation au démarrage

Vérifiez toujours que la clé existe et fonctionne avant d'exécuter votre pipeline :

import os
import sys
import requests

API_KEY = os.environ.get("CAPTCHAAI_API_KEY")
if not API_KEY:
    print("ERROR: CAPTCHAAI_API_KEY environment variable not set")
    sys.exit(1)

# Verify key works
resp = requests.get("https://ocr.captchaai.com/res.php", params={
    "key": API_KEY, "action": "getbalance", "json": "1"
}).json()

if resp["status"] != 1:
    print(f"ERROR: Invalid API key — {resp['request']}")
    sys.exit(1)

print(f"API key valid — balance: ${float(resp['request']):.2f}")

Erreurs courantes

Erreur Risque Corriger
Valider .env sur Git Clé exposée dans l'historique des pensions Ajoutez .env à .gitignore avant le premier commit
Impression de la clé API dans les journaux Clé visible dans les agrégateurs de journaux N'enregistrez jamais les clés complètes : masquez-les ou omettez-les
Codage en dur dans Dockerfile Clé intégrée dans les calques d'image Utilisez ENV au moment de l'exécution, pas dans les étapes de construction
Partager des clés via chat/email Clé interceptée ou divulguée Utilisez un gestionnaire de secrets ou partagez via un canal sécurisé

FAQ

Dois-je chiffrer le fichier .env ?

Pour le développement local, .gitignore est suffisant. Pour la production, utilisez un gestionnaire de secrets cloud (AWS Secrets Manager, Google Secret Manager, Azure Key Vault) au lieu de fichiers .env.

Que se passe-t-il si ma clé est déjà validée dans Git ?

Faites pivoter la clé immédiatement dans votre tableau de bord CaptchaAI. L'ancienne clé de l'historique Git reste accessible même après la suppression du fichier.

Puis-je utiliser plusieurs clés dans un seul fichier .env ?

Oui. Utilisez des valeurs séparées par des virgules ou des touches numériques :

CAPTCHAAI_KEYS=key1,key2,key3
keys = os.environ["CAPTCHAAI_KEYS"].split(",")

Sécurisez votre intégration CaptchaAI dès le premier jour

Obtenez votre clé API surcaptchaai.com.


Guides associés

  • Liste blanche IP CaptchaAI et sécurité des clés API
  • Rotation des clés API CaptchaAI
  • Démarrage rapide de l'API CaptchaAI
Les commentaires sont désactivés pour cet article.