Bảo mật website không phải là một cài đặt, một plugin hay một lần quét malware. Đó là thói quen giảm các điểm vào dễ bị khai thác, phát hiện vấn đề sớm, giới hạn thiệt hại và khôi phục nhanh khi có sự cố.

Với phần lớn website doanh nghiệp, attacker không dành nhiều tháng để nghiên cứu riêng công ty của bạn. Họ thường quét hàng loạt để tìm các lỗi phổ biến: phần mềm cũ, mật khẩu yếu, trang admin lộ, plugin không an toàn, phân quyền sai, backup bị public, server cấu hình kém và form không được theo dõi.

Bảo mật tốt không cần kịch tính. Nó cần đều đặn.

Checklist này dành cho website doanh nghiệp, ecommerce, công ty dịch vụ, publisher và các team nhỏ cần bảo vệ website một cách thực tế mà không biến mọi quyết định thành dự án security quá nặng.

1. Luôn cập nhật platform, plugin, theme và dependency

Phần mềm lỗi thời là một trong những nguyên nhân phổ biến khiến website bị compromise.

Nếu website dùng WordPress, Magento, Drupal, Joomla, Laravel, Node.js, Astro hoặc bất kỳ framework nào khác, phần website người dùng nhìn thấy chỉ là một phần của stack lớn hơn. CMS, plugin, theme, package, server software, database và build tool đều có thể tạo rủi ro bảo mật.

Một quy trình cập nhật thực tế nên có:

  • Cập nhật security patch nhanh
  • Xóa plugin, theme và package không còn dùng
  • Tránh extension bị bỏ rơi hoặc lâu không maintain
  • Test major update trên staging trước production
  • Backup trước các thay đổi lớn
  • Kiểm tra form, checkout và trang quan trọng sau khi update
  • Theo dõi lỗi sau deployment

Automatic update có thể hữu ích, đặc biệt với security patch, nhưng không phải toàn bộ kế hoạch. Update tự động vẫn có thể lỗi, xung đột extension hoặc làm hỏng form quan trọng. Hãy kết hợp update với monitoring và rollback.

2. Bật MFA cho mọi tài khoản admin và hosting

Mật khẩu không còn đủ để bảo vệ các hệ thống quan trọng.

Hãy bật xác thực nhiều lớp cho:

  • Tài khoản quản trị CMS
  • Hosting control panel
  • Domain registrar
  • DNS provider
  • Email doanh nghiệp
  • Cloud storage và hệ thống backup
  • GitHub, GitLab hoặc Bitbucket
  • Payment, CRM, analytics và marketing tool kết nối với website

Với tài khoản quan trọng, nếu có thể hãy ưu tiên phương thức chống phishing tốt hơn như passkey hoặc hardware security key. SMS code vẫn tốt hơn không có MFA, nhưng app-based MFA, passkey và hardware key thường an toàn hơn.

Đồng thời hãy xóa user cũ. Tài khoản của nhân sự cũ, agency, freelancer, tài khoản test và tài khoản admin dùng chung đều là rủi ro âm thầm.

3. Dùng nguyên tắc least privilege

Không phải ai cũng cần quyền administrator.

Editor không cần cài plugin. Marketing user không cần đổi DNS. Developer không cần quyền database production cho việc chỉnh nội dung thông thường. Contractor nên có quyền giới hạn theo thời gian và chỉ vào đúng hệ thống cần thiết.

Hãy review quyền định kỳ:

  • Xóa user không hoạt động
  • Hạ quyền các tài khoản không cần admin
  • Tránh dùng chung login
  • Mỗi người dùng một tài khoản riêng
  • Tắt quyền khi dự án kết thúc
  • Ghi rõ ai đang có quyền vào hệ thống nào

Least privilege giúp giảm thiệt hại nếu một tài khoản bị đánh cắp.

4. Dùng HTTPS toàn site và monitor SSL

Mọi website hiện đại nên dùng HTTPS trên toàn bộ website, không chỉ trang login hoặc checkout.

HTTPS bảo vệ credential, cookie, form submission, thao tác admin và niềm tin của visitor. Nó cũng tránh cảnh báo “Not secure” trên trình duyệt.

Hãy kiểm tra:

  • HTTP redirect sang HTTPS
  • SSL/TLS certificate còn hiệu lực
  • Có monitor ngày hết hạn SSL
  • Không còn mixed content warning
  • Canonical URL dùng https://
  • Cookie quan trọng được đánh dấu secure khi phù hợp

SSL hết hạn có thể khiến website đang hoạt động bình thường trông như bị lỗi. Hãy coi SSL monitoring là một phần của uptime monitoring.

5. Backup website và test khôi phục

Backup chỉ có giá trị nếu có thể khôi phục.

Với website doanh nghiệp, backup nên chạy tự động, đủ thường xuyên theo mức rủi ro, và được lưu riêng khỏi production server. Nếu server bị hack, mã hóa, xóa hoặc suspend, backup chỉ lưu local có thể mất theo.

Một kế hoạch backup tốt gồm:

  • Backup database
  • Backup file upload và media
  • Backup theme, plugin và application code
  • Backup file cấu hình
  • Lưu an toàn các environment variable hoặc thông tin cấu hình cần thiết
  • Off-site storage
  • Retention đủ dài để xử lý sự cố phát hiện muộn
  • Test restore trên staging

Ít nhất mỗi quý nên test restore cho website quan trọng. Lần test đầu tiên thường là lúc team phát hiện thiếu file, database export lỗi, credential hết hạn hoặc backup job đã dừng từ lâu.

6. Monitoring uptime, malware, form và thay đổi bất thường

Bảo mật không chỉ là phòng ngừa. Nó còn là phát hiện sớm.

Bạn cần biết khi website downtime, chậm bất thường, redirect người dùng, phát malware, lỗi form hoặc xuất hiện nội dung lạ.

Các lớp monitoring hữu ích gồm:

  • Uptime check
  • SSL expiry check
  • Malware và blacklist monitoring
  • File change detection cho website CMS
  • Vulnerability scanning
  • Review error log
  • Test form tự động
  • Test checkout cho ecommerce
  • Theo dõi security issue trong Google Search Console

Google Search Console có thể báo các vấn đề như malware, code injection, content injection, redirect đáng ngờ, unwanted download và phishing warning. Website doanh nghiệp quan trọng nên kết nối Search Console.

7. Bảo vệ login page và admin area

Admin area là mục tiêu bị tấn công rất nhiều vì dễ đoán và có giá trị cao.

Với website CMS, đặc biệt WordPress và ecommerce platform, hãy bảo vệ login và admin route theo nhiều lớp:

  • Mật khẩu mạnh
  • MFA
  • Login rate limiting
  • Bot protection
  • CAPTCHA khi thật sự giúp giảm rủi ro
  • IP allowlist hoặc VPN cho admin area nhạy cảm
  • Tắt tài khoản admin mặc định hoặc không dùng
  • Audit log cho thao tác administrator

Đừng chỉ dựa vào việc đổi URL login. Việc này có thể giảm noise, nhưng không phải security boundary. Authentication và access control mới là phần quan trọng hơn.

8. Bảo vệ form, upload và user input

Contact form, quote form, search box, checkout field, file upload, comment và login form đều nhận input từ người dùng. Attacker test các khu vực này liên tục.

Tối thiểu cần:

  • Validate input ở server
  • Escape output trước khi render
  • Giới hạn loại file được upload
  • Lưu upload ngoài executable path khi có thể
  • Đổi tên file upload an toàn
  • Giới hạn dung lượng file
  • Scan upload khi rủi ro cao
  • Chống spam và abuse cho form
  • Tránh gửi dữ liệu nhạy cảm qua email không an toàn

Nếu website có custom development, nên test theo các nhóm rủi ro phổ biến như broken access control, injection, security misconfiguration, vulnerable components, authentication failures và logging yếu.

9. Dùng web application firewall đúng cách

Web application firewall, hay WAF, có thể chặn nhiều request độc hại trước khi chúng đến website. Điều này đặc biệt hữu ích với CMS, ecommerce và các website thường xuyên nhận bot traffic.

WAF có thể hỗ trợ:

  • Chặn pattern exploit phổ biến
  • Chặn bot xấu
  • Giảm login abuse
  • Rate limiting
  • Chặn user agent bất thường
  • Phát hiện request đáng ngờ
  • Virtual patching trong lúc chuẩn bị cập nhật thật

Nhưng WAF không thay thế việc sửa code lỗi, cập nhật plugin hoặc dùng phân quyền đúng. Hãy xem WAF là một lớp bổ sung, không phải nền tảng duy nhất.

10. Xóa những gì website không cần

Độ phức tạp tạo thêm rủi ro. Mỗi plugin, script, account, integration, tracking tag, API key và landing page bị bỏ quên đều là thứ cần maintain.

Hãy định kỳ xóa:

  • CMS plugin và theme không dùng
  • Staging site cũ
  • Test script
  • Database export bị public
  • Backup archive cũ
  • Tài khoản administrator không còn cần
  • Tracking tag lỗi thời
  • Subdomain bị quên
  • Development tool bị lộ

Attacker thường tìm thấy góc bị bỏ quên trước.

11. Bảo vệ DNS, domain và email

Bảo mật website không chỉ nằm trong website application.

Nếu domain registrar, DNS provider hoặc email doanh nghiệp bị compromise, attacker có thể redirect website, chặn password reset, đổi mail record hoặc giả mạo doanh nghiệp.

Hãy bảo vệ các hệ thống này bằng:

  • MFA cho registrar và DNS account
  • Registrar lock nếu có
  • Giới hạn quyền DNS
  • Email security mạnh
  • SPF, DKIM và DMARC
  • Monitoring thay đổi DNS
  • Người phụ trách rõ ràng cho gia hạn domain và quyền truy cập

Nhiều sự cố nghiêm trọng bắt đầu bên ngoài CMS.

12. Ghi log các hoạt động quan trọng

Log giúp bạn hiểu chuyện gì đã xảy ra, mức độ ảnh hưởng và cần sửa gì.

Các log hữu ích gồm:

  • CMS admin login
  • Thay đổi nội dung và cấu hình
  • Thay đổi plugin hoặc extension
  • File change
  • Server access log
  • Error log
  • Firewall event
  • Deployment history
  • Backup job history

Hãy giữ log đủ lâu để điều tra sự cố phát hiện muộn. Nếu chỉ giữ log một hai ngày, bạn có thể mất timeline trước khi ai đó nhận ra website đã bị compromise.

13. Chuẩn bị checklist xử lý sự cố trước khi cần

Khi website bị hack, giờ đầu tiên rất căng thẳng. Một checklist ngắn giúp team xử lý bình tĩnh hơn.

Checklist nên trả lời:

  • Ai phụ trách xử lý?
  • Ai có quyền vào hosting, DNS, backup và CMS?
  • Làm sao tạm ngưng website nếu visitor có rủi ro?
  • Làm sao giữ log và bằng chứng?
  • Backup sạch nằm ở đâu?
  • Ai liên hệ khách hàng nếu có rủi ro dữ liệu?
  • Ai request review trong Google Search Console sau khi cleanup?
  • Ai kiểm tra form, checkout, analytics và SEO sau khôi phục?

Đừng đợi đến khi có sự cố mới phát hiện không ai biết DNS đang quản lý ở đâu hoặc backup có dùng được không.

14. Review bảo mật hằng tháng

Bảo mật tốt lên nhờ routine. Một buổi review bảo mật hằng tháng không cần dài, nhưng cần thật.

Hãy kiểm tra:

  • Software update
  • Admin user
  • Backup
  • Restore status
  • Uptime và SSL monitoring
  • Malware scan
  • Security issue trong Search Console
  • Form quan trọng
  • Error log
  • Plugin, script và integration mới

Security program tốt nhất thường không phải cái phức tạp nhất. Đó là cái doanh nghiệp có thể duy trì đều đặn.

Nên bắt đầu từ đâu?

Nếu chưa biết bắt đầu từ đâu, hãy làm 5 việc này trước:

  1. Bật MFA cho admin, hosting, DNS và email.
  2. Cập nhật CMS, plugin, theme và dependency.
  3. Kiểm tra backup đang chạy và test restore.
  4. Kết nối uptime, SSL, malware và Search Console monitoring.
  5. Xóa user, plugin, theme, script và file cũ không dùng.

Những bước này không giải quyết mọi vấn đề bảo mật, nhưng giảm rất nhiều rủi ro phổ biến.

Bảo mật website không phải để tạo cảm giác sợ hãi. Nó là cách chăm sóc một tài sản kinh doanh quan trọng: bảo vệ khách hàng, doanh thu, SEO và giúp doanh nghiệp bình tĩnh hơn khi có sự cố.

Nếu muốn biến các việc này thành routine vận hành, ViWeb có thể hỗ trợ website monitoring và maintenance, hoặc website recovery khi site đã bị compromise.

Đọc thêm