Ưu, nhược và chỗ chưa rõ
| Ưu | README ghi gitleaks quét được cả lịch sử git, một thư mục, hoặc dữ liệu đưa vào stdin, và chạy như hook pre-commit: commit có key sẽ báo Failed và không vào được lịch sử git. | README, Pre-Commit |
|---|---|---|
| Ưu | Bài so sánh của AppSec Santa (cập nhật 18/04/2026) ghi gitleaks nhanh và đơn giản, thường trả kết quả dưới một giây trên repo cỡ thường, hợp làm hook pre-commit. | AppSec Santa, Gitleaks vs TruffleHog |
| Ưu | Mã ở commit mình đọc không gửi dữ liệu ra ngoài: gói net/http chỉ dùng cho chế độ chẩn đoán tùy chọn chạy ở localhost:6060. | cmd/diagnostics.go |
| Nhược | README ghi gitleaks đã đủ tính năng, từ nay chỉ ra bản vá bảo mật. Tác giả chuyển sang làm Betterleaks và nói trên Hacker News (03/2026) là sẽ không thêm tính năng mới cho gitleaks. Bản phát hành gần nhất là v8.30.1 ngày 21/03/2026. | Hacker News, tác giả, 2026-03-12 |
| Nhược | Gitleaks chỉ so mẫu regex và độ ngẫu nhiên, không thử key còn sống hay không, nên báo nhầm nhiều hơn công cụ có bước kiểm key như TruffleHog; bạn phải chỉnh allowlist dần theo thời gian. | AppSec Santa, Gitleaks vs TruffleHog |
| Nhược | Bộ luật có chỗ thiếu: một issue mở từ 03/2021 báo gitleaks bỏ sót khá nhiều loại key Azure, tới 29/10/2026 vẫn chưa đóng. | Issue #539 |
| Chưa rõ | Tác giả chỉ hướng dẫn dùng gitleaks như hook pre-commit và trong CI, không có hướng dẫn gắn vào hook của Claude Code hay Codex. Ví dụ pre-commit trong README còn ghim bản cũ v8.24.2 và gợi ý chạy pre-commit autoupdate; trang này ghim v8.30.1 và bỏ bước tự cập nhật. | README, Pre-Commit |
| Chưa rõ | Tác giả nói Betterleaks thay thế được gitleaks chỉ bằng alias gitleaks='betterleaks'. Mình chưa đọc mã Betterleaks nên chưa xác nhận điều này. | Hacker News, tác giả, 2026-03-12 |
Khi nên dùng
- Bạn muốn chặn API key lọt vào commit trước khi đẩy lên GitHub, nhất là khi agent tự commit, bằng một hook pre-commit chạy dưới một giây và không gửi gì ra ngoài.
Khi không nên dùng
- Bạn cần biết key bị lộ còn dùng được hay không (gitleaks không thử key), hoặc bạn cần luật mới cho dịch vụ mới ra: gitleaks không còn thêm tính năng.
Cách cài
brew install gitleaksTheo tài liệu của tác giảdocker pull ghcr.io/gitleaks/gitleaks:v8.30.1Theo tài liệu của tác giảrepos:
- repo: https://github.com/gitleaks/gitleaks
rev: v8.30.1
hooks:
- id: gitleaksTheo tài liệu của tác giảNó chạm vào những gì
- File đọc và ghi
- Đọc file trong thư mục hoặc lịch sử git bạn chỉ định. Chỉ ghi file báo cáo khi bạn truyền --report-path. Đọc cấu hình .gitleaks.toml và .gitleaksignore nếu có.
- Gọi mạng
- Không gọi ra internet. Chế độ chẩn đoán --diagnostics=http (tùy chọn, mặc định tắt) mở một server pprof tại localhost:6060.
- Script lúc cài
- Không có script chạy lúc cài. Hook pre-commit gọi: gitleaks git --pre-commit --redact --staged --verbose (che giá trị key trong log).
- Tiến trình
- Chạy lệnh git (git log -p, git diff) để đọc lịch sử và phần đã stage.
Đọc từ: diagnostics.go#L142, git.go#L91, .pre-commit-hooks.yaml, root.go#L77
Mục này chạy mã trên máy bạn với quyền của tài khoản bạn. Theo tài liệu Claude Code, hook và MCP server chạy ngoài sandbox. Đọc phần trên và file của tác giả trước khi cài. Tài liệu bảo mật plugin