Quét lộ khoá bí mật API

Quét văn bản, file, diff hoặc file ZIP mã nguồn tìm API key, token, khoá riêng, mật khẩu bị lộ bằng hơn 220 luật của gitleaks. Secret được che.

POSThttps://apibox.io.vn/v1/secret-scan
Bảo mật & Mã hoá▶ Dùng thử online

Gửi văn bản (text hoặc body thô) hoặc file: một file mã nguồn, file .gz, một bản diff (chỉ quét dòng được thêm, số dòng theo file mới) hoặc file .zip của cả repository. Bộ quét áp dụng bộ luật mặc định của gitleaks (hơn 220 luật: khoá AWS, GitHub, GitLab, Stripe, Slack, Google, OpenAI, Anthropic, khoá riêng, JWT và nhiều loại khác), được chuyển từ biểu thức Go RE2 sang JavaScript và cập nhật hằng tuần, cộng thêm luật riêng phát hiện mật khẩu trong URL chuỗi kết nối (postgres://user:pass@host). Giống gitleaks, mỗi luật có từ khoá, nhóm secret, ngưỡng entropy Shannon và danh sách bỏ qua (giá trị giữ chỗ như ${VAR}, changeme, khoá ví dụ, node_modules, file lock, ảnh).

Mỗi phát hiện gồm rule_id, mô tả, file, line / column (tính từ 1) và vị trí kết thúc, secret và đoạn khớp đã được che, entropy và mức tin cậy (low với luật khoá chung chung). entropy=true báo thêm các chuỗi dài có entropy cao mà không luật nào khớp. rules giới hạn các luật được chạy. Biểu thức chỉ chạy trên vùng quanh từ khoá, với tổng thời gian giới hạn, nên dữ liệu bất thường không thể làm treo; kết quả có timed_out hoặc slow_rules nếu xảy ra.

Quyền riêng tư: nội dung chỉ được quét trong bộ nhớ, không lưu và không ghi log, secret được che trong kết quả. Dù vậy, khoá đã từng bị dán ở đâu đó vẫn nên được thay mới. Giới hạn: tổng 5 triệu ký tự, mỗi file trong ZIP tối đa 2 MB, tối đa 10.000 file.

Tham số

TênVị tríKiểuBắt buộcMặc định
textbodystringkhôngVăn bản, mã nguồn hoặc bản diff cần quét (hoặc gửi body text thô).
filebodyfilekhôngFile văn bản, .gz, diff hoặc .zip mã nguồn (multipart, hoặc file_base64).
filenamebodystringkhôngĐường dẫn của văn bản, dùng cho luật và danh sách bỏ qua theo đường dẫn (ví dụ config/.env).
diffbodybooleankhôngCoi văn bản là bản diff (tự nhận diện).
entropybodybooleankhôngfalseBáo thêm các chuỗi entropy cao không khớp luật nào.
rulesbodystringkhôngDanh sách id luật cần chạy, phân tách bằng dấu phẩy (mặc định: tất cả).
limitbodynumberkhông1000Số phát hiện tối đa trả về (1–5000).

Ví dụ

curl -X POST "https://apibox.io.vn/v1/secret-scan" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"AWS_ACCESS_KEY_ID=AKIAQWERTYUIOPASDFGH\nDATABASE_URL=postgres://admin:S3cr3tP4ssw0rd!@db.example.com:5432/app\n","filename":".env"}'

Kết quả trả về

{
  "leaks_found": true,
  "count": 2,
  "files_scanned": 1,
  "characters_scanned": 109,
  "by_rule": {
    "aws-access-token": 1,
    "url-credentials": 1
  },
  "findings": [
    {
      "rule_id": "aws-access-token",
      "description": "Identified a pattern that may indicate AWS credentials, risking unauthorized cloud resource access and data breaches on AWS platforms.",
      "file": ".env",
      "line": 1,
      "column": 19,
      "end_line": 1,
      "end_column": 38,
      "secret_masked": "AKIA**************GH",
      "match_masked": "AKIA**************GH",
      "entropy": 3.984,
      "confidence": "high",
      "fingerprint": ".env:aws-access-token:1"
    },
    {
      "rule_id": "url-credentials",
      "description": "Password inside a URL / connection string (database, broker, FTP, HTTP basic auth).",
      "file": ".env",
      "line": 2,
      "column": 31,
      "end_line": 2,
      "end_column": 45,
      "secret_masked": "S3***********d!",
      "match_masked": "postgres://admin:S3***********d!@db.example.com:5432",
      "entropy": 3.507,
      "confidence": "high",
      "fingerprint": ".env:url-credentials:2"
    }
  ],
  "truncated": false,
  "rules": {
    "count": 222,
    "source": "gitleaks default config (MIT)",
    "dropped": 0
  },
  "ms": 5,
  "privacy": "The text is scanned in memory and not stored or logged; secrets are masked in the response."
}

Ứng dụng

  • Kiểm tra log hoặc ticket hỗ trợ có lộ khoá trước khi dán vào chatbot
  • Kiểm tra nhẹ trước khi commit hoặc trong CI trên bản diff, không cần cài công cụ
  • Rà soát file ZIP mã nguồn do đối tác bàn giao
  • Phát hiện mật khẩu database còn sót trong .env hoặc file cấu hình

Hỏi đáp

Mã nguồn của tôi có bị lưu lại không?

Không. Yêu cầu chỉ được xử lý trong bộ nhớ, không ghi vào kho lưu trữ hay log, và kết quả chỉ chứa secret đã được che.

Kết quả có giống chạy gitleaks không?

Dùng cùng bộ luật mặc định, từ khoá, ngưỡng entropy và danh sách bỏ qua. Luật nào không chuyển được từ RE2 sẽ bị bỏ và được đếm trong rules.dropped (hiện chưa có). API không quét lịch sử git, chỉ quét file bạn gửi.

Vì sao có phát hiện mức tin cậy thấp?

Luật generic-api-key khớp mọi phép gán kiểu key = "chuỗi ngẫu nhiên dài", nên tìm được cả secret không có định dạng riêng nhưng cũng có thể báo nhầm. Các luật theo từng nhà cung cấp có mức tin cậy high.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →