Hướng Dẫn Thực Hành

Bảo mật thông tin xác thực CaptchaAI trong các biến môi trường

Khóa API mã hóa cứng trong mã nguồn có nghĩa là bất kỳ ai có quyền truy cập vào kho lưu trữ - hoặc bất kỳ ai tìm thấy mã của bạn trên kho lưu trữ công khai - đều có khóa của bạn. Các biến môi trường giúp thông tin đăng nhập không nằm trong mã, kiểm soát phiên bản và nhật ký.


Tệp .env (phát triển cục bộ)

Tạo tệp .env trong thư mục gốc dự án của bạn:

CAPTCHAAI_API_KEY=your_actual_api_key_here

Thêm nó vào .gitignore ngay lập tức:

# .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);

Biến môi trường hệ thống

Đặt biến ở cấp hệ điều hành thay vì sử dụng tệp .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

Biến môi trường trong docker chạy

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

Docker Soạn

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

      - CAPTCHAAI_API_KEY=${CAPTCHAAI_API_KEY}

${CAPTCHAAI_API_KEY} tham chiếu biến môi trường của máy chủ - khóa không bao giờ xuất hiện trong tệp soạn thảo.

Bí mật của Docker (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

Đọc trong mã:

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

Đường ống CI/CD

Hành động 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 }}

Thêm bí mật vào Cài đặt -> Bí mật và biến -> Hành động -> Bí mật kho lưu trữ mới.

CI GitLab

# .gitlab-ci.yml
scrape:
  script:

    - python scraper.py
  variables:
    CAPTCHAAI_API_KEY: $CAPTCHAAI_API_KEY

Thêm biến trong Cài đặt -> CI/CD -> Biến với tùy chọn "Masked" được bật.


Xác thực khi khởi động

Luôn xác thực rằng khóa tồn tại và hoạt động trước khi chạy quy trình của bạn:

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

Những lỗi thường gặp

sai lầm Rủi ro sửa chữa
Cam kết .env với Git Khóa được hiển thị trong lịch sử repo Thêm .env vào .gitignore trước lần xác nhận đầu tiên
In khóa API trong nhật ký Khóa hiển thị trong trình tổng hợp nhật ký Không bao giờ ghi lại toàn bộ khóa - che dấu hoặc bỏ qua chúng
Mã hóa cứng trong Dockerfile Chìa khóa được nướng thành các lớp hình ảnh Sử dụng ENV khi chạy, không phải trong giai đoạn xây dựng
Chia sẻ khóa qua chat/email Khóa bị chặn hoặc bị rò rỉ Sử dụng trình quản lý bí mật hoặc chia sẻ qua kênh bảo mật

Câu hỏi thường gặp

Tôi có nên mã hóa tệp .env không?

Để phát triển địa phương, .gitignore là đủ. Để sản xuất, hãy sử dụng trình quản lý bí mật trên đám mây (AWS Secrets Manager, Google Secret Manager, Azure Key Vault) thay vì tệp .env.

Điều gì xảy ra nếu khóa của tôi đã được cam kết với Git?

Xoay phím ngay lập tức trong bảng điều khiển CaptchaAI của bạn. Khóa cũ trong lịch sử Git vẫn có thể truy cập được ngay cả sau khi xóa tệp.

Tôi có thể sử dụng nhiều khóa trong một tệp .env không?

Vâng. Sử dụng các giá trị được phân tách bằng dấu phẩy hoặc các khóa được đánh số:

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

Bảo mật tích hợp CaptchaAI của bạn ngay từ ngày đầu tiên

Nhận khóa API của bạn tạicaptchaai.com.


Hướng dẫn liên quan

Os comentários estão desativados para este artigo.