# SECURITY BASELINE — chuẩn bảo mật (bản public tóm tắt)

> Nguyên tắc: **không đánh đổi bảo mật lấy tốc độ** — áp dụng mọi project, kể cả khi governance tắt. Checklist thao tác chi tiết thuộc lớp private.

## Vùng BẮT BUỘC review bảo mật

Auth / session / cookie / token · OAuth / SSO / liên kết tài khoản · Truy vấn CSDL (chống SQL injection) · Dữ liệu người dùng (chống XSS, IDOR) · Khu quản trị (kiểm quyền mọi entry point) · Upload (whitelist + kiểm MIME + chặn thực thi) · API công khai (xác thực, rate limit) · Redirect (chỉ whitelist) · Secrets/credentials.

## Nguyên tắc nền

1. Mọi SQL dùng prepared statements — không bao giờ nối chuỗi input.
2. Mọi output động được escape đúng ngữ cảnh; JS không gán innerHTML với dữ liệu ngoài.
3. Endpoint thay đổi dữ liệu có CSRF token; truy cập theo ID luôn kiểm quyền sở hữu.
4. Validate input ở SERVER cho mọi nguồn (client-side chỉ là UX).
5. Mật khẩu băm chuẩn (bcrypt/argon2); session tái tạo sau đăng nhập; cookie HttpOnly/Secure/SameSite.
6. **Secrets không bao giờ plaintext** trong code/log/report/chat — chỉ env/secret manager/PO thao tác; lộ là rotate ngay.
7. Production không hiển thị lỗi thô; log không chứa dữ liệu nhạy cảm.
8. Cấm eval/exec/include theo input; serialize không tin cậy dùng JSON.
9. DELETE/UPDATE luôn có WHERE + ước lượng số dòng; thay đổi schema phải được duyệt + có rollback.
10. Backup trước mọi thay đổi dữ liệu; thử nghiệm phá hủy chỉ trên bản dev.
