Cách bảo mật web từng bước: checklist thực tế cho blog

Cách bảo mật blog/web từng bước: secret, dependency, CSP, quyền repo và checklist chống lộ credential — thực dụng cho site tĩnh.

Bài này trả lời

Blog tĩnh có cần bảo mật không? CSP là gì? Có nên public repo không? 2FA có cần không?
Mục lục

Cách bảo mật web từng bước: checklist thực tế cho blog

Bảo mật không bắt đầu từ WAF đắt tiền. Với blog tĩnh + CI, 80% việc là không lộ secret và không chạy script lạ.

Tầng 1 — Tài khoản & quyền

  • 2FA GitHub
  • Ít admin
  • Token fine-grained, hết hạn
  • Không share password

Tầng 2 — Secret hygiene

  • Không commit .env
  • Secret chỉ trong GitHub Secrets
  • Rotate khi nghi lộ
  • Không in secret ra log CI

Tầng 3 — Dependency & workflow

  • Pin action version
  • Review workflow lạ
  • Hạn chế pull_request_target nguy hiểm
  • Không auto-merge PR fork không tin

Nền vận hành: DevOps checklist.

Tầng 4 — Frontend

  • CSP cơ bản
  • Không eval user input
  • Escape output comment/CMS
  • HTTPS

Tham chiếu OWASP Top 10.

Tầng 5 — Dữ liệu người dùng

Nếu có login/comment/payment:

  • Session tách role
  • Không tin client
  • Rate limit
  • Không log PII

Góc fintech: bảo mật ngân hàng số.

Checklist hàng quý

ViệcTần suất
Review quyền collaborator3 tháng
Rotate token3–6 tháng
Quét secret repoMỗi tháng / mỗi PR
BackupTuần

Checklist PR security (nhanh)

  • Diff có token/password không?
  • Workflow mới xin permission gì?
  • Dependency lạ?
  • Link ngoài javascript:?

Sự cố lộ secret — 30 phút đầu

  1. Revoke token
  2. Rotate key
  3. Xoá khỏi git history nếu cần (và coi như đã lộ)
  4. Kiểm tra access log
  5. Thông báo team

CSP tối thiểu (ý tưởng)

  • default-src 'self'
  • Script chỉ domain tin cậy
  • frame-ancestors 'none' nếu không cần embed

Bảo mật máy dev

  • Ổ khoá màn hình
  • Không commit từ máy share
  • SSH key có passphrase
  • Tắt sync clipboard secret

Liên hệ fintech

Người dùng ngân hàng số: không chia sẻ OTP, kiểm tra URL chính thức — xem bài bảo mật VietinBank/app.

Bước tiếp

Chạy một lượt secret scan trên repo tuần này và bật 2FA mọi tài khoản admin.

Ghi chú thực chiến (bổ sung)

Phần này mình giữ cố ý ngắn, làm được ngay, tránh lý thuyết dài:

  1. Chọn một mục trong checklist phía trên — chỉ một.
  2. Đặt deadline 48 giờ (hoặc 7 ngày nếu là lộ trình).
  3. Ghi lại kết quả vào note: làm được gì / kẹt ở đâu.
  4. Lặp lại mục tiếp theo; đừng nhảy cóc khi nền chưa vững.
  5. Chia sẻ với một người (bạn / team) để có feedback.

Khi nào nên dừng và hỏi lại

  • Bạn copy đúng checklist nhưng không hiểu vì sao làm bước đó.
  • Công cụ/giấy tờ thực tế khác với mô tả (luôn ưu tiên nguồn chính thức).
  • Có rủi ro tiền bạc, pháp lý, tài khoản — dừng và đọc điều khoản gốc.

Liên kết đọc thêm trong SEOMONEY

Hãy dùng menu chuyên mục và các bài liên quan ở cuối trang (Related / series) để đi sâu cluster thay vì mở 20 tab ngẫu nhiên. Topical authority đến từ mạng bài cùng chủ đề, không phải một bài “siêu dài” đơn lẻ.

Tóm tắt hành động

Ưu tiênViệcXong khi
P0Mục checklist số 1 bạn chọnCó output kiểm chứng được
P1Ghi note lỗi/kẹtCó 3 dòng ghi nhận
P2Đặt lịch ôn/lặpCó mốc trên calendar

Làm đủ P0 + P1 đã hơn 80% người chỉ “lưu bài để đọc sau”.

Liên kết bên ngoài được sử dụng trong bài viết

Liên kết nội bộ liên quan

Bản quyền & Ghi nguồn

Một phần dữ liệu trong bài viết được tham khảo từ OWASP Top 10. Mọi thương hiệu, tên sản phẩm và tài liệu gốc thuộc quyền sở hữu của chủ sở hữu tương ứng. Bài viết chỉ trích dẫn, tổng hợp và phân tích — không nhằm thay thế tài liệu chính thức.

FAQ - Câu hỏi thường gặp

Blog tĩnh có cần bảo mật không?
Có — secret trong repo, XSS qua nội dung, domain hijack, token CI vẫn là rủi ro.
CSP là gì?
Content-Security-Policy giới hạn nguồn script/style/img trình duyệt được tải, giảm XSS.
Có nên public repo không?
Được nếu không có secret; mọi file trong repo public đều bị coi là lộ.
2FA có cần không?
Nên bật 2FA GitHub/Google cho admin.
Quét secret bằng gì?
gitleaks/trufflehog hoặc secret scanning của GitHub; + review tay PR.

Bình luận

Đang tải bình luận…

    Đăng nhập để tham gia thảo luận.

    Đăng nhập bằng Google để bình luận

    Chỉ dùng để bình luận. Không truy cập trình soạn thảo/CMS.