Tutorial

Mengamankan API Key CaptchaAI dengan Environment Variables

Melakukan hardcoding kunci API dalam kode sumber berarti siapa pun yang memiliki akses repositori – atau siapa pun yang menemukan kode Anda di repositori publik – memiliki kunci Anda. Variabel lingkungan menjauhkan kredensial dari kode, kontrol versi, dan log.


File .env (pengembangan lokal)

Buat file .env di root proyek Anda:

CAPTCHAAI_API_KEY=your_actual_api_key_here

Segera tambahkan ke .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);

Variabel lingkungan sistem

Tetapkan variabel di tingkat OS alih-alih menggunakan file .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")

buruh pelabuhan

Variabel lingkungan dalam menjalankan buruh pelabuhan

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

Penulisan Docker

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

      - CAPTCHAAI_API_KEY=${CAPTCHAAI_API_KEY}

${CAPTCHAAI_API_KEY} mereferensikan variabel lingkungan host — kuncinya tidak pernah muncul di file penulisan.

Rahasia Docker (Kawanan)

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

Baca dalam kode:

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

Jaringan pipa CI/CD

Tindakan 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 }}

Tambahkan rahasia di Pengaturan -> Rahasia dan variabel -> Tindakan -> Rahasia repositori baru.

GitLab CI

# .gitlab-ci.yml
scrape:
  script:

    - python scraper.py
  variables:
    CAPTCHAAI_API_KEY: $CAPTCHAAI_API_KEY

Tambahkan variabel di Pengaturan -> CI/CD -> Variabel dengan opsi "Masked" diaktifkan.


Validasi saat startup

Selalu validasi bahwa kunci tersebut ada dan berfungsi sebelum menjalankan pipeline Anda:

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}")

Kesalahan umum

Kesalahan Resiko Perbaiki
Melakukan .env ke Git Kunci terekspos dalam riwayat repo Tambahkan .env ke .gitignore sebelum melakukan commit pertama
Mencetak kunci API dalam log Kunci terlihat di agregator log Jangan pernah mencatat kunci lengkap – menutupi atau menghilangkannya
Pengkodean keras di Dockerfile Kunci dimasukkan ke dalam lapisan gambar Gunakan ENV saat runtime, bukan pada tahap pembuatan
Berbagi kunci melalui chat/email Kunci dicegat atau bocor Gunakan pengelola rahasia atau bagikan melalui saluran aman

Pertanyaan Umum

Haruskah saya mengenkripsi file .env?

Untuk pengembangan lokal, .gitignore sudah cukup. Untuk produksi, gunakan manajer rahasia cloud (AWS Secrets Manager, Google Secret Manager, Azure Key Vault) alih-alih file .env.

Bagaimana jika kunci saya sudah dikomit ke Git?

Segera putar kunci di dashboard CaptchaAI Anda. Kunci lama dalam riwayat Git tetap dapat diakses bahkan setelah file dihapus.

Bisakah saya menggunakan banyak kunci dalam satu file .env?

Ya. Gunakan nilai yang dipisahkan koma atau kunci bernomor:

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

Amankan integrasi CaptchaAI Anda sejak hari pertama

Dapatkan kunci API Anda dicaptchaai.com.


Panduan terkait

  • CaptchaAI Daftar Putih IP dan Keamanan Kunci API
  • Rotasi Kunci API CaptchaAI
  • Panduan Memulai API CaptchaAI
Komentar dinonaktifkan untuk artikel ini.