Die harte Codierung von API-Schlüsseln im Quellcode bedeutet, dass jeder mit Repository-Zugriff – oder jeder, der Ihren Code in einem öffentlichen Repo findet – Ihren Schlüssel hat. Umgebungsvariablen halten Anmeldeinformationen von Code, Versionskontrolle und Protokollen fern.
.env-Datei (lokale Entwicklung)
Erstellen Sie eine .env-Datei in Ihrem Projektstammverzeichnis:
CAPTCHAAI_API_KEY=your_actual_api_key_here
Fügen Sie es sofort zu .gitignore hinzu:
# .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);
Systemumgebungsvariablen
Legen Sie Variablen auf Betriebssystemebene fest, anstatt .env-Dateien zu verwenden:
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
Umgebungsvariable im Docker-Lauf
docker run -e CAPTCHAAI_API_KEY="your_key" my-scraper
Docker Compose
# docker-compose.yml
services:
scraper:
image: my-scraper
environment:
- CAPTCHAAI_API_KEY=${CAPTCHAAI_API_KEY}
Der ${CAPTCHAAI_API_KEY} verweist auf die Umgebungsvariable des Hosts – der Schlüssel erscheint nie in der Compose-Datei.
Docker-Geheimnisse (Swarm)
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
Code einlesen:
with open("/run/secrets/captchaai_key") as f:
API_KEY = f.read().strip()
CI/CD-Pipelines
GitHub-Aktionen
# .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 }}
Fügen Sie das Geheimnis unter Einstellungen → Geheimnisse und Variablen → Aktionen → Neues Repository-Geheimnis hinzu.
GitLab CI
# .gitlab-ci.yml
scrape:
script:
- python scraper.py
variables:
CAPTCHAAI_API_KEY: $CAPTCHAAI_API_KEY
Fügen Sie die Variable unter Einstellungen → CI/CD → Variablen mit aktivierter Option „Maskiert“ hinzu.
Validierung beim Start
Überprüfen Sie immer, ob der Schlüssel vorhanden ist und funktioniert, bevor Sie Ihre Pipeline ausführen:
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}")
Häufige Fehler
| Fehler | Risiko | Beheben |
|---|---|---|
.env an Git übergeben |
Schlüssel im Repo-Verlauf offengelegt | Fügen Sie .env zu .gitignore vor dem ersten Commit hinzu |
| Drucken des API-Schlüssels in Protokollen | Schlüssel sichtbar in Protokollaggregatoren | Protokollieren Sie niemals vollständige Schlüssel – maskieren oder lassen Sie sie weg |
| Hardcodierung in Dockerfile | Schlüssel in Bildebenen eingebrannt | Verwenden Sie ENV zur Laufzeit, nicht in Build-Phasen |
| Schlüssel über chat/email teilen | Schlüssel abgefangen oder durchgesickert | Verwenden Sie einen Secrets-Manager oder teilen Sie sie über einen sicheren Kanal |
FAQ
Soll ich die .env-Datei verschlüsseln?
Für die lokale Entwicklung ist .gitignore ausreichend. Verwenden Sie für die Produktion einen Cloud Secret Manager (AWS Secrets Manager, Google Secret Manager, Azure Key Vault) anstelle von .env-Dateien.
Was passiert, wenn mein Schlüssel bereits an Git übergeben wurde?
Drehen Sie den Schlüssel sofort in Ihrem CaptchaAI-Dashboard. Der alte Schlüssel im Git-Verlauf bleibt auch nach dem Löschen der Datei zugänglich.
Kann ich mehrere Schlüssel in einer .env-Datei verwenden?
Ja. Verwenden Sie durch Kommas getrennte Werte oder nummerierte Schlüssel:
CAPTCHAAI_KEYS=key1,key2,key3
keys = os.environ["CAPTCHAAI_KEYS"].split(",")
Sichern Sie Ihre CaptchaAI-Integration vom ersten Tag an
Holen Sie sich Ihren API-Schlüssel untercaptchaai.com.
Verwandte Leitfäden
- CaptchaAI IP-Whitelisting und API-Schlüsselsicherheit
- CaptchaAI API-Schlüsselrotation
- CaptchaAI API-Schnellstart
Diskussionen (0)
Beteiligen Sie sich an der Unterhaltung
Melden Sie sich an, um Ihre Meinung zu teilen.
AnmeldenNoch keine Kommentare.