Website có thể bị tấn công qua tài khoản quản trị, lỗi phân quyền, mã nguồn, plugin, cấu hình máy chủ hoặc dịch vụ bên thứ ba. Vì vậy, cách phòng chống hiệu quả không nằm ở một plugin duy nhất mà ở nhiều lớp kiểm soát: giảm bề mặt tấn công, ngăn khai thác, phát hiện bất thường và khôi phục khi có sự cố.
Tóm tắt nhanh: Bảy nhóm tấn công website cần ưu tiên gồm chiếm tài khoản, lỗi phân quyền, injection, XSS và tấn công trình duyệt, khai thác thành phần hoặc chuỗi cung ứng, DDoS/bot abuse và phishing. Doanh nghiệp nên bắt đầu bằng MFA, cập nhật có kiểm soát, phân quyền tối thiểu, backup có kiểm tra khôi phục, log cảnh báo và quy trình ứng cứu.

Nên ưu tiên rủi ro nào trước?
Mức độ ưu tiên phụ thuộc vào tài sản, dữ liệu và cách website được vận hành. Cổng đăng nhập khách hàng, website thương mại điện tử và trang giới thiệu doanh nghiệp không có cùng hậu quả khi bị xâm nhập.
| Tình huống | Việc cần làm trước |
|---|---|
| Có tài khoản quản trị hoặc khách hàng | Bật MFA, rà quyền, giới hạn đăng nhập và cảnh báo phiên bất thường |
| Dùng CMS, plugin hoặc thư viện | Kiểm kê phiên bản, gỡ thành phần không dùng và vá theo mức rủi ro |
| Có form, tìm kiếm, API hoặc upload | Kiểm tra input, quyền phía server, loại file và giới hạn tài nguyên |
| Phụ thuộc doanh thu hoặc vận hành | Chuẩn bị CDN/WAF, giám sát uptime, backup và phương án khôi phục |
| Lưu dữ liệu nhạy cảm | Giảm dữ liệu lưu, kiểm soát truy cập, mã hóa phù hợp và theo dõi truy xuất |
OWASP Top 10:2025 là tài liệu nhận thức về các nhóm rủi ro ứng dụng web. Bản 2025 nhấn mạnh lỗi phân quyền, cấu hình sai và chuỗi cung ứng phần mềm. Đây là điểm khởi đầu, không phải checklist kiểm thử hoàn chỉnh cho mọi website.
1. Chiếm tài khoản và tấn công đăng nhập
Kẻ tấn công có thể thử mật khẩu phổ biến, dùng thông tin đăng nhập đã rò rỉ, lừa người dùng nhập mật khẩu hoặc đánh cắp phiên đăng nhập. Brute force chỉ là một phần; credential stuffing đặc biệt nguy hiểm khi người dùng tái sử dụng mật khẩu.

- Dùng mật khẩu riêng và password manager.
- Bật MFA cho WordPress, hosting, DNS, email và kho mã nguồn.
- Không dùng chung tài khoản quản trị; thu hồi ngay tài khoản không còn cần thiết.
- Áp dụng rate limit hoặc challenge có kiểm soát cho trang đăng nhập.
- Cảnh báo khi xuất hiện admin mới, đổi quyền hoặc đăng nhập bất thường.
2. Lỗi phân quyền, CSRF và SSRF
Lỗi phân quyền xảy ra khi người dùng có thể xem, sửa hoặc gọi chức năng ngoài quyền của mình. CSRF có thể lợi dụng phiên đăng nhập để gửi yêu cầu ngoài ý muốn; SSRF khiến máy chủ truy cập tài nguyên mà kẻ tấn công không thể gọi trực tiếp. Ẩn nút trên giao diện không thay thế kiểm tra quyền phía server.
- Kiểm tra xác thực và quyền trên mọi request quan trọng.
- Dùng nguyên tắc quyền tối thiểu và vai trò rõ ràng; xem hướng dẫn RBAC.
- Dùng cơ chế chống CSRF do framework hoặc CMS cung cấp.
- Giới hạn URL, giao thức và đích mà máy chủ được phép truy cập.
- Kiểm thử bằng nhiều vai trò, kể cả tài khoản hết quyền hoặc chưa đăng nhập.
3. Injection: SQL, command và template injection
Injection xảy ra khi dữ liệu không tin cậy được ghép vào truy vấn hoặc câu lệnh và làm thay đổi ý nghĩa thực thi. Hậu quả có thể là đọc hoặc sửa dữ liệu, chạy lệnh trên máy chủ hay chiếm quyền ứng dụng.

- Dùng parameterized query hoặc API an toàn của framework.
- Không ghép input trực tiếp vào SQL, lệnh hệ thống hoặc template.
- Validate theo kiểu, độ dài và phạm vi dữ liệu mong đợi.
- Giới hạn quyền database và service account.
- Không hiển thị stack trace, secret hoặc lỗi kỹ thuật ra ngoài.
4. XSS, script bên thứ ba và upload file độc hại
Cross-Site Scripting xuất hiện khi dữ liệu không tin cậy được đưa vào HTML, JavaScript hoặc thuộc tính mà không encode đúng ngữ cảnh. Script quảng cáo, tag manager và file upload cũng có thể mở rộng bề mặt tấn công nếu thiếu kiểm soát.
- Output encode đúng ngữ cảnh; sanitize HTML khi thật sự cần cho phép markup.
- Giới hạn loại file, kích thước, tên file và nơi lưu; không tin MIME do trình duyệt khai báo.
- Không cho file upload thực thi như mã nguồn.
- Đặt cookie với thuộc tính bảo vệ phù hợp và cân nhắc Content Security Policy.
- Rà quyền publish của tag manager và danh sách script bên thứ ba.
5. Thành phần lỗi thời, chuỗi cung ứng và backdoor
Website có thể bị khai thác qua plugin, theme, thư viện, tài khoản nhà phát triển, quy trình build hoặc gói cài đặt không rõ nguồn gốc. Sau khi xâm nhập, kẻ tấn công có thể tạo admin, chèn file, sửa cron hoặc cài backdoor để quay lại.

- Chỉ dùng thành phần từ nguồn và giấy phép có thể xác minh.
- Kiểm kê phiên bản, theo dõi cảnh báo và cập nhật theo mức rủi ro.
- Gỡ plugin, theme và tài khoản không còn dùng.
- Giới hạn quyền ghi file, deploy và tài khoản dịch vụ.
- Theo dõi thay đổi file, admin mới, cron và kết nối bất thường.
- Duy trì nhiều bản backup và định kỳ kiểm tra khả năng khôi phục.
Tần suất kiểm tra nên dựa trên mức rủi ro và tần suất thay đổi. Tham khảo cách xác định lịch quét malware website. Nếu đã có dấu hiệu xâm nhập, hãy bảo toàn log và làm theo quy trình xử lý website bị hack.
6. DDoS, bot abuse và làm cạn tài nguyên
Tấn công khả dụng có thể nhắm vào băng thông, giao thức hoặc endpoint tốn tài nguyên như đăng nhập, tìm kiếm, API và checkout. Traffic tăng chưa đủ để kết luận là DDoS; cần đối chiếu nguồn, hành vi, mã phản hồi và mức sử dụng tài nguyên.

- Thiết lập baseline cho traffic và endpoint quan trọng.
- Dùng CDN, cache, rate limit và WAF theo hành vi hợp lệ.
- Giới hạn truy cập trực tiếp tới origin khi kiến trúc cho phép.
- Có giám sát uptime, đầu mối upstream và runbook escalation.
- Không cam kết một lớp duy nhất chống được mọi quy mô tấn công.
7. Phishing, giả mạo domain và chiếm kênh liên lạc
Kẻ tấn công có thể đăng ký domain giống thương hiệu, chiếm email, gửi trang đăng nhập giả hoặc chèn nội dung phishing lên website đã bị xâm nhập. HTTPS chỉ mã hóa kết nối tới domain đang truy cập; nó không chứng minh đó là website chính thức của thương hiệu.
- Bảo vệ registrar, DNS và email bằng MFA.
- Thiết lập SPF, DKIM và DMARC phù hợp với hệ thống gửi mail.
- Đào tạo nhân sự kiểm tra domain và yêu cầu bất thường.
- Dùng kênh xác minh thứ hai cho thay đổi tài khoản hoặc giao dịch tài chính.
- Chuẩn bị đầu mối báo cáo và quy trình yêu cầu gỡ nội dung giả mạo.
Dấu hiệu website có thể đang bị tấn công
- Xuất hiện redirect, popup, trang hoặc kết quả tìm kiếm lạ.
- Có admin, API key, cron hoặc file không rõ nguồn gốc.
- Đăng nhập bất thường, đổi quyền hoặc reset mật khẩu ngoài dự kiến.
- CPU, traffic, email gửi, lỗi 4xx/5xx tăng khác baseline.
- Trình duyệt, Search Console, WAF hoặc nhà cung cấp phát cảnh báo.
- Nội dung, đơn hàng hay cấu hình bị thay đổi.
Một dấu hiệu riêng lẻ có thể do lỗi vận hành. Đừng vội xóa file hoặc cài thêm plugin. Hãy ghi thời điểm, bảo toàn log, đối chiếu thay đổi gần nhất và cô lập tài khoản hoặc hệ thống bị nghi ngờ theo kế hoạch ứng cứu.
Checklist phòng chống theo 4 lớp
| Lớp | Kiểm soát tối thiểu |
|---|---|
| Phòng ngừa | MFA, quyền tối thiểu, cập nhật, secure coding, hardening và quản lý nhà cung cấp |
| Giảm thiểu | CDN/WAF, rate limit, phân đoạn, backup và bảo vệ origin |
| Phát hiện | Log đăng nhập, thay đổi quyền, file integrity, uptime và cảnh báo có người xử lý |
| Ứng cứu | Đầu mối chịu trách nhiệm, cô lập, điều tra, khôi phục sạch và rà nguyên nhân gốc |
OWASP khuyến nghị dùng Top 10 cho nhận thức và đào tạo cơ bản; với yêu cầu có thể kiểm chứng, tổ chức nên xây kiểm soát theo tiêu chuẩn chi tiết hơn như ASVS. Điều quan trọng là mỗi kiểm soát phải có chủ sở hữu, bằng chứng vận hành và cách kiểm tra định kỳ.
Câu hỏi thường gặp
Cài WAF có ngăn được mọi cuộc tấn công không?
Không. WAF có thể lọc một phần request độc hại và hỗ trợ giảm thiểu bot hoặc DDoS lớp ứng dụng, nhưng không sửa được lỗi phân quyền, tài khoản bị chiếm, mã độc đã cài hoặc quy trình vận hành yếu.
Website nhỏ có cần bảo mật nhiều lớp?
Có, nhưng phạm vi nên tương xứng rủi ro. Một website nhỏ vẫn cần MFA, cập nhật, backup, quyền tối thiểu và cảnh báo cơ bản. Website có đăng nhập, thanh toán hoặc dữ liệu nhạy cảm cần kiểm thử và giám sát chặt hơn.
Kết luận
Các hình thức tấn công website thường nối tiếp nhau: mật khẩu bị lộ mở đường cho admin giả; plugin lỗi thời dẫn tới backdoor; website bị chiếm lại được dùng để phishing. Hãy ưu tiên tài khoản, thành phần công khai, dữ liệu quan trọng và khả năng khôi phục trước, sau đó mở rộng kiểm thử và giám sát theo rủi ro thực tế.
Đoàn Trình Dục là Giảng viên Khoa Công nghệ Thông tin tại Đại học Công nghệ Sài Gòn (STU), với hơn 10 năm kinh nghiệm thực chiến trong các lĩnh vực Mạng máy tính, Marketing Online, SEO và Bảo mật hệ thống.
Với nền tảng sư phạm và kinh nghiệm tư vấn cho nhiều doanh nghiệp, thầy chuyên sâu vào việc xây dựng các giải pháp kỹ thuật số toàn diện và hiệu quả.

