# ==============================================================================
# 🛡️ ZERO-TRUST VIBE CODING SECURITY RULES FOR AI CODING AGENTS
# ==============================================================================
# Áp dụng cho: Cursor, Claude Code, Cline, Antigravity, GitHub Copilot, Windsurf.
# Mục đích: Ngăn chặn 100% AI sinh code lộ Token, Webhook, API Key ra Frontend.
# ==============================================================================

[SECURITY_MANDATES]
1. ZERO CLIENT-SIDE SECRETS:
   - TUYỆT ĐỐI KHÔNG BAO GIỜ viết bất kỳ API Key, Webhook URL (Discord/Slack), Bot Token (Telegram), Database URL hoặc mật khẩu vào các tệp Frontend (HTML, CSS, JavaScript, Vue, React, Svelte, static/*.js).
   - Mọi thao tác gửi tin nhắn, gọi API bên thứ ba, ghi dữ liệu CSDL BẮT BUỘC phải thực hiện ở Backend Server (Python Flask/FastAPI, Node.js Express/Next.js Server Actions).

2. SECRETS MANAGEMENT VIA ENVIRONMENT VARIABLES:
   - Tất cả thông tin bí mật PHẢI đọc từ biến môi trường qua `os.environ.get()` (Python) hoặc `process.env` (Node.js).
   - Mọi dự án phải có file `.env.example` chứa các biến mẫu (chỉ chứa placeholder `YOUR_KEY_HERE`, không chứa giá trị thật).
   - Tệp `.env` THỰC TẾ BẮT BUỘC phải được khai báo trong `.gitignore`.

3. DEFENSIVE CODING & INPUT SANITIZATION:
   - Mọi endpoint nhận dữ liệu từ người dùng (POST/PUT) PHẢI được sanitize, kiểm tra độ dài chuỗi và giới hạn tần suất (Rate Limiting).
   - Không thực thi câu lệnh SQL thô nối chuỗi (SQL Injection); luôn dùng ORM hoặc Parameterized Queries.

4. DOCKER & CONTAINER SECURITY:
   - Dockerfile phải chạy dưới quyền user Non-Root (UID 1001), không bao giờ dùng root mặc định.
   - Docker Compose phải tách network nội bộ (`internal: true`) cho CSDL và Redis, không map port CSDL (5432, 3306, 6379) ra mạng Internet công cộng (`0.0.0.0`).

5. PRE-COMMIT AUDIT:
   - Trước khi đề xuất lệnh commit hoặc push, luôn tự động rà soát lại các file đã sửa để đảm bảo không sót bất kỳ chuỗi token/webhook nào.
