Kiểm tra bảo mật website nghe có vẻ là công việc của chuyên gia bảo mật với mức lương 50-100 triệu/tháng. Nhưng thực tế, 80% lỗ hổng bảo mật phổ biến có thể được phát hiện bằng 10 bước kiểm tra đơn giản — không cần kỹ năng lập trình, không cần tool đắt tiền. Bài viết này hướng dẫn chủ doanh nghiệp và quản lý website tự kiểm tra bảo mật, kèm công cụ miễn phí và checklist có thể tải về.
Tại sao phải kiểm tra bảo mật website?
Thống kê đáng lo ngại tại Việt Nam
- Hơn 12,000 website Việt Nam bị hack năm 2025 (VNCERT)
- 70% website SME có ít nhất 1 lỗ hổng nghiêm trọng mà chủ sở hữu không biết
- Chi phí khắc phục website bị hack: 5-500 triệu VND
- Thời gian phục hồi: 1-4 tuần, trong đó website ngừng hoạt động
Kiểm tra bảo mật nên thực hiện khi nào?
| Thời điểm | Loại kiểm tra |
|---|---|
| Sau khi launch website mới | Toàn diện (10 bước) |
| Hàng tháng | Nhanh (bước 1, 2, 5, 8) |
| Sau mỗi lần update lớn | Toàn diện |
| Khi có dấu hiệu bất thường | Toàn diện + chuyên sâu |
| Hàng quý | Toàn diện |
Lead Magnet: Tải miễn phí Security Audit Checklist cho SME — checklist 50 mục bảo mật cho website, email và server.
Bước 1: Kiểm tra SSL/HTTPS (5 phút)
Tại sao quan trọng?
SSL mã hóa dữ liệu giữa browser và server. Không có SSL → thông tin đăng nhập, thẻ tín dụng gửi bằng plain text — bất kỳ ai trên cùng mạng WiFi có thể đọc được.
Cách kiểm tra
- Truy cập website → nhìn thanh address bar → phải có biểu tượng khóa
- URL phải bắt đầu bằng
https://không phảihttp:// - Click vào biểu tượng khóa → xem certificate details → kiểm tra ngày hết hạn
Công cụ miễn phí
- SSL Labs: https://www.ssllabs.com/ssltest/ → Nhập domain → Xem điểm A đến F
- Why No Padlock: https://www.whynopadlock.com → Tìm mixed content
Đánh giá
| Kết quả | Ý nghĩa | Hành động |
|---|---|---|
| Score A hoặc A+ | Tuyệt vời | Không cần làm gì |
| Score B | Tạm được | Update SSL configuration |
| Score C-F | Nguy hiểm | Cần fix ngay |
| Không có SSL | Rất nguy hiểm | Cài đặt SSL ngay lập tức |
Bước 2: Scan malware và blacklist (10 phút)
Cách thực hiện
Sử dụng các công cụ scan miễn phí:
- Sucuri SiteCheck: https://sitecheck.sucuri.net → Scan malware, blacklist, lỗi
- Google Safe Browsing: https://transparencyreport.google.com/safe-browsing → Kiểm tra domain
- VirusTotal: https://www.virustotal.com → Scan URL bằng 70+ engines
- MXToolbox: https://mxtoolbox.com/blacklists.aspx → Kiểm tra email blacklist
Cần chú ý gì?
| Kết quả scan | Mức độ | Hành động |
|---|---|---|
| Clean | An toàn | Scan lại hàng tháng |
| Warnings | Cảnh báo | Kiểm tra chi tiết từng warning |
| Malware detected | Nguy hiểm | Clean ngay, xem bước xử lý bên dưới |
| Blacklisted | Nghiêm trọng | Clean + request delisting |
Bước 3: Kiểm tra phiên bản CMS và plugins (10 phút)
Tại sao quan trọng?
80% website bị hack qua lỗ hổng trong CMS hoặc plugin cũ. Mỗi bản update thường vá lỗ hổng bảo mật.
Kiểm tra WordPress
- Đăng nhập admin → Dashboard → Updates → Xem phiên bản WordPress hiện tại
- Plugins → Installed Plugins → Xem có plugin nào cần update
- Themes → Xem theme có update không
- Xóa plugin/theme không dùng (đừng chỉ deactivate — xóa hẳn)
Kiểm tra CMS khác
- Joomla: Extensions → Manage → Update
- Drupal: Reports → Available updates
- Custom CMS: Kiểm tra framework version (Laravel, Express, Django)
Bảng rủi ro theo phiên bản
| Tình trạng | Rủi ro | Hành động |
|---|---|---|
| CMS và tất cả plugins up-to-date | Thấp | Duy trì, kiểm tra hàng tuần |
| CMS up-to-date, 1-2 plugins cũ | Trung bình | Update plugins trong tuần |
| CMS cũ > 3 tháng | Cao | Update ngay |
| CMS cũ > 1 năm | Rất cao | Update ngay + security scan |
Bước 4: Kiểm tra mật khẩu và quyền truy cập (15 phút)
Checklist mật khẩu
- Admin password ít nhất 12 ký tự, bao gồm chữ hoa, chữ thường, số, ký tự đặc biệt
- Không dùng: tên công ty, admin123, 12345678, password
- Mỗi người dùng tài khoản riêng (không share 1 tài khoản admin)
- 2FA (xác thực 2 bước) đã bật cho tất cả admin
- Tài khoản nhân viên đã nghỉ việc đã bị vô hiệu hóa
Kiểm tra quyền truy cập
| Kiểm tra | Hành động |
|---|---|
| Bao nhiêu admin accounts? | Chỉ giữ 2-3 admin, còn lại giảm quyền |
| Có user lạ không? | Xóa ngay tài khoản không nhận ra |
| FTP/SSH access? | Đổi password, dùng key-based auth |
| Hosting control panel? | Bật 2FA, đổi password |
| Database access? | Đổi DB password, restrict IP |
Công cụ kiểm tra mật khẩu bị lộ
- Have I Been Pwned: https://haveibeenpwned.com → Kiểm tra email/password đã bị lộ trong data breach
- Firefox Monitor: https://monitor.firefox.com → Tương tự
Bước 5: Kiểm tra backup (10 phút)
Tiêu chuẩn backup 3-2-1
- 3 bản sao dữ liệu
- 2 loại media khác nhau (cloud + local)
- 1 bản offsite (khác vị trí vật lý)
Checklist backup
- Backup tự động chạy hàng ngày
- Backup bao gồm: files + database + email
- Backup được lưu ở nơi khác server chính
- Đã test restore thành công trong 30 ngày gần nhất
- Retention policy: giữ ít nhất 30 ngày backup
Bảng đánh giá backup
| Tình trạng | Rủi ro | Hành động |
|---|---|---|
| Backup hàng ngày, đã test restore | Thấp | Duy trì |
| Backup hàng ngày, chưa test restore | Trung bình | Test restore ngay |
| Backup hàng tuần hoặc thủ công | Cao | Setup auto backup hàng ngày |
| Không có backup | Rất cao | Setup ngay hôm nay |
Bước 6: Kiểm tra form và input validation (15 phút)
Tại sao quan trọng?
SQL Injection và XSS (Cross-Site Scripting) là 2 lỗ hổng phổ biến nhất — cả hai khai thác qua form input.
Cách kiểm tra đơn giản (không cần kỹ năng code)
Test SQL Injection: Thử nhập vào các ô form (search, login, contact):
' OR '1'='1
Nếu website trả về lỗi database hoặc hiển thị bất thường → có lỗ hổng SQL Injection.
Test XSS: Thử nhập vào form:
<script>alert('test')</script>
Nếu xuất hiện popup “test” → có lỗ hổng XSS.
Test file upload: Nếu website cho upload file → thử upload file .php hoặc .exe. Nếu upload thành công → lỗ hổng nghiêm trọng.
Công cụ scan miễn phí
- OWASP ZAP: https://www.zaproxy.org → Scan toàn diện (cần cài đặt)
- Nikto: Web server scanner miễn phí
- WPScan: https://wpscan.com → Scan WordPress miễn phí
Bước 7: Kiểm tra HTTP Security Headers (5 phút)
Cách kiểm tra
Truy cập https://securityheaders.com → Nhập domain → Xem điểm.
Headers quan trọng
| Header | Chức năng | Không có = |
|---|---|---|
| Content-Security-Policy | Chống XSS, injection | XSS attacks |
| X-Frame-Options | Chống clickjacking | Iframe attacks |
| X-Content-Type-Options | Chống MIME sniffing | File type attacks |
| Strict-Transport-Security | Force HTTPS | Downgrade attacks |
| Referrer-Policy | Kiểm soát referrer data | Privacy leak |
| Permissions-Policy | Kiểm soát browser features | Feature abuse |
Đánh giá
| Score | Ý nghĩa |
|---|---|
| A+ | Xuất sắc |
| A-B | Tốt |
| C-D | Cần cải thiện |
| E-F | Nguy hiểm — cần fix ngay |
Bước 8: Kiểm tra admin panel exposure (5 phút)
Vấn đề
Nhiều website để admin panel ở URL mặc định dễ đoán:
/admin/wp-admin/administrator/login
Hacker dùng bot quét hàng nghìn website tìm admin panel → brute force password.
Cách kiểm tra và bảo vệ
- Thử truy cập: Mở incognito browser → vào yourdomain.com/wp-admin → có hiện login page?
- Nếu hiện login page: Cần bảo vệ thêm:
- Thay đổi URL admin (plugin WPS Hide Login cho WordPress)
- Limit login attempts (plugin Limit Login Attempts Reloaded)
- IP whitelist cho admin page
- CAPTCHA cho login form
- Kiểm tra phpMyAdmin: Thử yourdomain.com/phpmyadmin → nếu hiện = RẤT NGUY HIỂM
Bước 9: Kiểm tra email security (10 phút)
DNS records cần kiểm tra
Truy cập https://mxtoolbox.com → nhập domain:
| Record | Chức năng | Không có = |
|---|---|---|
| SPF | Xác định server nào được gửi email | Email giả mạo |
| DKIM | Ký điện tử email | Email bị sửa đổi |
| DMARC | Chính sách xử lý email fake | Không kiểm soát |
Kiểm tra nhanh
- SPF: mxtoolbox.com → SPF Record Lookup → Nhập domain
- DKIM: mxtoolbox.com → DKIM Lookup → Nhập domain + selector
- DMARC: mxtoolbox.com → DMARC Lookup → Nhập domain
Đánh giá
| Tình trạng | Rủi ro |
|---|---|
| SPF + DKIM + DMARC đều có | Thấp |
| Chỉ có SPF | Trung bình |
| Không có gì | Rất cao — ai cũng có thể giả mạo email công ty bạn |
Bước 10: Tổng hợp và đánh giá (15 phút)
Bảng chấm điểm tổng
| Bước | Kiểm tra | Pass/Fail | Mức độ rủi ro |
|---|---|---|---|
| 1 | SSL/HTTPS | Cao nếu fail | |
| 2 | Malware scan | Rất cao nếu fail | |
| 3 | CMS + Plugins update | Cao nếu fail | |
| 4 | Mật khẩu + Quyền | Rất cao nếu fail | |
| 5 | Backup | Rất cao nếu fail | |
| 6 | Input validation | Cao nếu fail | |
| 7 | Security headers | Trung bình nếu fail | |
| 8 | Admin panel exposure | Cao nếu fail | |
| 9 | Email security | Cao nếu fail | |
| 10 | Tổng hợp đánh giá |
Phân loại kết quả
| Kết quả | Tình trạng | Hành động |
|---|---|---|
| 8-10 Pass | An toàn | Duy trì, kiểm tra hàng quý |
| 6-7 Pass | Tạm ổn | Fix 2-3 vấn đề trong tuần |
| 4-5 Pass | Nguy hiểm | Fix ngay các vấn đề “Rất cao” |
| < 4 Pass | Rất nguy hiểm | Thuê chuyên gia kiểm tra toàn diện |
Sau khi kiểm tra — Làm gì tiếp?
Ưu tiên fix theo mức độ nghiêm trọng
- Ngay lập tức (hôm nay): Malware, mật khẩu yếu, không backup, admin panel exposed
- Trong tuần: SSL, CMS update, email security
- Trong tháng: Security headers, input validation hardening
- Hàng quý: Toàn bộ 10 bước kiểm tra lại
Khi nào cần thuê chuyên gia?
- Website chứa dữ liệu nhạy cảm (khách hàng, thanh toán)
- Scan phát hiện malware nhưng không biết clean
- Kết quả kiểm tra < 4/10 Pass
- Website là kênh kinh doanh chính (e-commerce, SaaS)
- Có yêu cầu compliance (PCI DSS, ISO 27001)
Trinh Digital Security Services
Tại Trinh Digital, chúng tôi cung cấp:
- Security Audit Express — Kiểm tra 50+ mục bảo mật, báo cáo chi tiết, từ 10 triệu VND
- Penetration Testing — Ethical hacking tìm lỗ hổng trước hacker, từ 30 triệu VND
- Security Hardening — Gia cố bảo mật toàn diện, từ 15 triệu VND
- Managed Security — Giám sát 24/7, phản ứng sự cố, từ 5 triệu/tháng
FAQ — Câu hỏi thường gặp
1. Kiểm tra bảo mật có làm ảnh hưởng đến website không?
Không. 10 bước trong bài viết này chỉ là kiểm tra thụ động — đọc thông tin, scan từ bên ngoài. Không thay đổi gì trên website. An toàn để thực hiện bất kỳ lúc nào.
2. Tôi không biết gì về kỹ thuật, có tự kiểm tra được không?
Được. 8/10 bước chỉ cần truy cập website và nhập domain vào các công cụ miễn phí. Bước 6 (input validation) cần thử nhập text vào form — vẫn đơn giản. Chỉ cần 60-90 phút cho toàn bộ.
3. Nên kiểm tra bao lâu 1 lần?
Tối thiểu mỗi quý (3 tháng/lần). Hàng tháng nếu website là kênh kinh doanh chính. Ngay lập tức sau mỗi lần update lớn hoặc phát hiện dấu hiệu bất thường.
4. Chi phí thuê kiểm tra bảo mật chuyên nghiệp?
Security audit cơ bản: 10-30 triệu VND. Penetration testing: 30-100 triệu VND. Compliance audit (PCI DSS, ISO): 50-200 triệu VND. Đầu tư nhỏ so với thiệt hại khi bị hack.
5. Website mới launch có cần kiểm tra ngay không?
Chắc chắn có. Nhiều website mới launch với cấu hình mặc định (default admin password, debug mode on, unnecessary ports open). Kiểm tra ngay sau launch là thời điểm quan trọng nhất.
Muốn kiểm tra bảo mật chuyên sâu hơn? Liên hệ Trinh Digital để nhận Security Audit Checklist miễn phí và đặt lịch security assessment.