🌐 Ngôn ngữ: 🇻🇳 Tiếng Việt (hiện tại) · 🇬🇧 English · 🇯🇵 日本語
Checklist bảo mật — theo thời điểm và những lỗi hay gặp
Giới thiệu
Trang này là danh sách kiểm tra bảo mật cho site GP247, chia theo thời điểm: ngay sau khi cài, trước khi mở bán, định kỳ, và khi có sự kiện (nhân viên nghỉ, chuyển máy chủ, nghi bị lộ). Cuối trang là những lỗi hay gặp kèm hậu quả và cách tránh. Trang dành cho chủ site và người phụ trách kỹ thuật; in ra hoặc chép vào công cụ quản lý công việc để đánh dấu được. Mỗi mục dẫn tới trang hướng dẫn chi tiết.
Nhìn nhanh
Bốn nhóm việc, theo vòng đời của một site:
flowchart LR
A["Ngay sau khi cài"] --> B["Trước khi mở bán"] --> C["Định kỳ<br/>tháng / quý"]
C --> C
C -.-> D["Khi có sự kiện"]
- Ngay sau khi cài — thay tài khoản mặc định, đặt khoá riêng, sao lưu
.env. - Trước khi mở bán — HTTPS, tắt debug, kiểm
.envkhông tải được, có lịch sao lưu. - Định kỳ — cập nhật, xem nhật ký, thử khôi phục.
- Khi có sự kiện — làm ngay trong ngày, theo đúng thứ tự.
Ngay sau khi cài
- Thay tài khoản quản trị mặc định
admin; thử đăng nhậpadmin/adminphải bị từ chối — Tài khoản & phân quyền - Mở
/install— phải chuyển sang trang đăng nhập — Cấu hình production - Đặt
GP247_ENCRYPTION_KEYriêng rồi chạyphp artisan config:clear— Mã hoá dữ liệu nhạy cảm - Sao lưu file
.envra nơi an toàn ngoài máy chủ — Khoá mã hoá & sao lưu - Nâng chính sách mật khẩu (tối thiểu 12, tối đa 64 ký tự) — Tài khoản & phân quyền
- Chạy
php artisan gp247:doctor, xử lý mọi dòng FAIL — Danh sách lệnh CLI
Trước khi mở bán
-
APP_ENV=production,APP_DEBUG=false; header trang quản trị không có nhãn "DEBUG ON" — Cấu hình production - HTTPS bật,
http://tự chuyển sanghttps://,APP_URLbắt đầu bằnghttps://,SESSION_SECURE_COOKIE=true— Cấu hình production - Document root trỏ vào
public/; mở/.envtrên trình duyệt phải lỗi 404 hoặc 403 — Cấu hình production -
LOG_LEVELlàwarninghoặcerror— Cấu hình production - Mật khẩu cơ sở dữ liệu và mọi mật khẩu mẫu đã đổi — Cấu hình production
- Bật xác thực hai lớp (plugin MFA) cho mọi quản trị viên — Tài khoản & phân quyền
- Mỗi nhân viên một tài khoản, quyền vừa đủ — Tài khoản & phân quyền
- Tắt REST API / MCP nếu không dùng — Hệ thống bảo vệ những gì
- Có lịch sao lưu tự động cơ sở dữ liệu +
storage/app/+app/GP247/, có một bản ngoài máy chủ — Khoá mã hoá & sao lưu
Định kỳ
Hằng tháng
- So phiên bản site (
php artisan gp247:info) với "Phiên bản nên dùng" ở trang phát hành; cập nhật nếu cũ hơn — Cập nhật & xử lý sự cố - Cập nhật PHP, web server, hệ điều hành (hoặc hỏi hosting) — Cập nhật & xử lý sự cố
- Xem màn Nhật ký truy cập: thao tác lạ, IP lạ — Tài khoản & phân quyền
- Rà màn Người dùng: tài khoản không còn dùng thì tắt
Hằng quý
- Thử khôi phục bản sao lưu lên một site thử — Khoá mã hoá & sao lưu
- Rà vai trò và quyền: ai giữ Administrator, ai có quyền quản lý file, cài plugin, chi tiền
- Rà token REST API và MCP: thu hồi token không dùng
- Gỡ plugin không dùng
Khi có sự kiện
Nhân viên nghỉ việc — chi tiết
- Đổi mật khẩu rồi tắt tài khoản của người đó; thu hồi token MCP
- Đổi bí mật người đó từng biết (hosting, cơ sở dữ liệu, SMTP, cổng thanh toán)
Chuyển máy chủ hoặc nhân bản site — chi tiết
- Chép nguyên file
.env; không chạyphp artisan key:generate - Chạy
php artisan gp247:doctor; dòngsecret_decryptablephải PASS
Nghi bị lộ — chi tiết
- Cô lập → sao lưu hiện trạng → đổi mật khẩu & token → đổi bí mật tại nhà cung cấp → đổi khoá nếu
.envlộ → điều tra → khôi phục
Những lỗi hay gặp
Mười lỗi dưới đây gây phần lớn sự cố trên site thật. Mỗi lỗi có hậu quả và cách tránh.
| # | Lỗi | Hậu quả | Cách tránh |
|---|---|---|---|
| 1 | Không sao lưu .env (chứa khoá) |
Máy chủ hỏng: mật khẩu SMTP, secret thanh toán, license thành rỗng, không lấy lại được | Sao lưu .env ngay sau khi cài và sau mỗi lần sửa — chi tiết |
| 2 | Chạy php artisan key:generate trên site đang chạy |
Mọi người bị đăng xuất; secret webhook hỏng; chưa có khoá riêng thì mất cả bí mật cấu hình | Không bao giờ chạy trên site thật; đổi khoá theo quy trình — chi tiết |
| 3 | APP_DEBUG=true trên site thật |
Khách thấy đường dẫn, câu truy vấn, cấu hình khi có lỗi | APP_ENV=production + APP_DEBUG=false — chi tiết |
| 4 | Dùng nguyên .env.example |
APP_ENV=local, LOG_LEVEL=debug, mật khẩu cơ sở dữ liệu mẫu |
Sửa theo bảng biến production — chi tiết |
| 5 | Sửa .env mà quên php artisan config:clear |
Site vẫn chạy cấu hình cũ, kể cả debug cũ | Chạy php artisan config:clear sau mỗi lần sửa — chi tiết |
| 6 | Đưa .env lên Git hoặc document root sai |
Mọi bí mật lộ | .gitignore có .env; document root là public/ — chi tiết |
| 7 | Giữ tài khoản admin / admin |
Bị chiếm trang quản trị trong vài phút | Thay ngay sau khi cài — chi tiết |
| 8 | Có sao lưu nhưng chưa từng thử khôi phục | Tới lúc cần mới biết bản sao lưu thiếu hoặc hỏng | Thử khôi phục mỗi quý — chi tiết |
| 9 | docker compose down -v trên production |
Xoá volume chứa cơ sở dữ liệu | Chỉ dùng docker compose down (không -v) — chi tiết |
| 10 | Cài plugin không rõ nguồn | Plugin đọc được .env và cơ sở dữ liệu |
Chỉ cài từ thư viện GP247 hoặc tác giả tin cậy — chi tiết |
Điều kiện & ràng buộc (hiểu trước khi thao tác)
- Checklist mô tả bản phát hành mới nhất — site chưa cập nhật có thể thiếu một vài màn hình hoặc tuỳ chọn; cập nhật trước.
- Mục có dòng lệnh cần quyền máy chủ — trên shared hosting không có dòng lệnh, nhờ người phụ trách kỹ thuật hoặc nhà cung cấp.
- Đánh dấu xong không có nghĩa là an toàn mãi — các mục định kỳ phải lặp lại.
Hỏi & Đáp (Q&A)
Câu 1: Tôi không có thời gian, làm ít nhất những mục nào?
→ Ba mục: thay tài khoản admin, sao lưu .env + cơ sở dữ liệu ra ngoài máy chủ, APP_DEBUG=false.
Câu 2: Tôi dùng shared hosting, mục nào làm được không cần dòng lệnh?
→ Gần hết: sửa .env bằng trình quản lý file, bật HTTPS và sao lưu ở bảng điều khiển hosting, các việc trên trang quản trị. Chỉ gp247:doctor, gp247:info và config:clear cần dòng lệnh — không có thì nhờ hosting.
Câu 3: Có cần làm lại checklist "Ngay sau khi cài" khi cập nhật không?
→ Không. Khi cập nhật, làm mục "Định kỳ" và quy trình ở Cập nhật GP247 an toàn.
Câu 4: Tôi phát hiện đã mắc một lỗi trong bảng, có nghĩa là site đã bị xâm nhập?
→ Không nhất thiết. Sửa lỗi đó ngay, rồi xem màn Nhật ký truy cập và Người dùng tìm dấu hiệu lạ. Có dấu hiệu thì làm theo mục "Nghi bị lộ".
Câu 5: Checklist này có thay được kiểm thử bảo mật chuyên nghiệp không?
→ Không. Đây là mức tối thiểu cho mọi site. Site lớn hoặc xử lý nhiều dữ liệu khách nên thuê đánh giá bảo mật định kỳ.
📅 Cập nhật lần cuối: 2026-11-04 · ✍️ Tác giả (Author): GP247