Website PHP Bị Hack – Lỗ Hổng PHP & Cách Khắc Phục
PHP là xương sống của hầu hết CMS phổ biến nhờ sự đơn giản và miễn phí license. PHP là lựa chọn ưu tiên cho phát triển website động. Tuy nhiên, do tiêu chuẩn coding kém, xâm phạm site PHP trở nên tương đối dễ dàng. Internet đầy thread help user than phiền custom PHP website hacked hoặc PHP website redirect hack. Dẫn đến tiếng xấu cho PHP – trong khi PHP không hề chịu lỗi.
Nếu PHP không phải lỗi, thì gì gây PHP website redirect hack? Bài viết giải thích lỗ hổng bảo mật xâm phạm site PHP và cách phòng ngừa.
Custom PHP Website Hacked: Ví Dụ
Chủ site thường chỉ tập trung development, không quan tâm bảo mật. Khi site PHP bị hack, chủ site vô phương cứu chữa – đã trả tiền dev chỉ cho development. User khổ đau tìm help trên forum, đọc bài như này. Một vài ví dụ:



Custom PHP Website Hacked: Triệu Chứng
- Trang phishing xuất hiện trên site PHP – lừa user nhập info nhạy cảm.
- User click link trên site → chuyển domain khác. Do misconfig hoặc PHP redirect hack.
- Adblocker gắn cờ/chặn element site do crypto mining.
- File manager PHP lạ xuất hiện, site hiển thị quảng cáo độc.
- File PHP bị sửa code lạ gây redirect hoặc tạo backlink cho site đáng ngờ.
- Nội dung gibberish xuất hiện – do Japanese Keyword Hack hoặc Pharma Hack...
- Cảnh báo treo tài khoản khi dùng hosting third-party cho custom PHP site.
- Site hiện cảnh báo blacklist bởi Google/search engine khác do malware spam...
- phpMyAdmin hiển thị database admin mới lạ.
- Email từ domain site PHP bị gắn nhãn spam.
- Lỗi bất ngờ, site chậm và unresponsive.
Custom PHP Website Hacked: 13 Lý Do Tại Sao

Cấu Hình Sai Server (Server Mis-configuration)
1. File Permissions Yếu
File permission cấp quyền sửa file PHP cho user loại nào. Nếu permission không set đúng → attacker inject malware/spam vào file PHP.
2. Mật Khẩu Mặc Định (Default Passwords)
Dùng pass yếu/thông dụng – lý do thường gặp hack custom PHP. Customized dictionary thử tất cả tổ hợp pass. Khi compromised, tùy attack vector (FTP brute force hoặc cPanel brute force) → attacker truy cập admin area custom PHP site → upload PHP malware/backdoor.
Bài liên quan – How to remove the WordPress Backdoor?
3. Directory Indexing Enabled (Bật Liệt Kê Thư Mục)
Bật directory indexing cho attacker đọc file PHP nhạy cảm. Lộ info server cho attacker → dùng info này tấn công cyber site PHP.
4. Port Mở (Open Ports)
Port mở gây hack site PHP. Attacker dùng port mở fingerprint backend service site PHP. Dùng info đó compromise backend service hoặc port mở qua exploit.
5. Hosting Kém (Poor Hosting)
Hosting PHP rẻ thường kèm giá bảo mật cao. Hosting kém cắt giảm operation bảo mật để rẻ. Khi nhiễm lan trên server kiểu này → compromise nhiều site kể cả site PHP của bạn, dù không bị nhắm trực tiếp.
Code PHP Dễ Bị Tấn Công (Vulnerable PHP Code)
6. PHP SQL Injection
SQLi trong PHP chủ yếu do thiếu sanitized user input. Do coding standard kém, input không sanitized đi thẳng đến database server và thực thi. Nguyên nhân chính SQLi custom PHP page:
- Thiếu filter ký tự space.
- Dùng dấu nháy đơn/kéo delimit string.
- Pass unsanitized user input đến Database.
- Triển khai Unicode encoding không đúng.
- Trộn lẫn code với data.
- Xử lý Type không đúng.
7. PHP Cross-Site Scripting (XSS)
XSS là nguyên nhân thường gặp hack custom PHP site sau SQLi. Cả hai attack phổ biến web – hàng năm trong OWASP top 10. XSS cũng do thiếu sanitize user input. Trong site PHP và chung, XSS chủ yếu 3 loại:
- Stored XSS: Dựa vào web admin click link cụ thể → load script độc steal cookie.
- Reflected XSS: XSS nghiêm trọng, thường thấy site PHP có forum, discussion... Code độc từ loại này lưu trên server và chạy mỗi lần user truy cập trang PHP đó.
- DOM Based XSS: Loại này có thể là 2 loại trên. Nhưng detection khó – có thể escape sau code audit.
Site dễ bị XSS thường bị nhắm cho PHP website redirect hack hoặc steal admin cookie.
8. PHP Cross-Site Request Forgery (CSRF)
CSRF attack nhằm lừa user site PHP thực hiện hành động không muốn. Nếu site PHP cho signup, CSRF cho phép xóa account ngẫu nhiên hoặc hành động khác. Dù hệ quả hành động không trực tiếp thấy được bởi attacker, CSRF có thể xóa user site PHP → giảm traffic.
9. PHP Local File Inclusion (LFI)
File inclusion vulnerability khi attacker truy cập file ngoài root directory 'www'. Thủ phạm chính: script kém lấy filename làm parameter. Lỗ hổng cho attacker đọc file config nhạy cảm và password site PHP. Info này dùng login admin rights → site PHP hacked.
Zero-Day Flaws Trong PHP
10. Plugin Hoặc Theme Buggy
Plugin/theme code kém trên PHP = lỗ hổng ngồi trên server chờ khai thác. Có instance attacker nhắm plugin buggy tấn công hàng loạt site PHP. Nếu site PHP hacked, khả năng cao do plugin/theme kém.
11. PHP Package Bị Xâm Phạm (Compromised PHP Package)
Có khả năng PHP library/package vulnerable. Tương tự ngôn ngữ khác. Gần đây PHP PEAR package manager bị attacker compromise. Attacker thay bản gốc bằng code inject – user tải vô tình. Package dùng cho search/download thư viện PHP free. Dù hiếm nhưng khả năng hack do zero-day không thể bỏ qua.
Tấn Công Social Engineering
12. Phishing
Admin site PHP có nhận mail từ hoàng tử Nigeria? Tấn công kiểu này lừa admin lộ info nhạy cảm site PHP → hacked. Lọc email cho domain site PHP!
13. Tailgating
Tailgating = biến thể phishing. Attacker compromise low-level user account trước, dùng leo thang đặc quyền. Tailgating thấy trong case study researchers, dùng phổ biến để tránh detection. Hệ quả: từ info stealing đến site PHP hacked.
Custom PHP Website Hacked: Bảo Mật Site

Thiết Lập Permission Đúng (Set Correct Permissions)
PHP có 3 function check file permission:
- is_readable(): Trả true nếu user được đọc file PHP.
- is_writable(): Trả true nếu user được ghi file PHP.
- is_executable(): Trả true nếu user được thực thi file PHP.
Function chmod() PHP dùng sửa permission. Input tên file + permission. Ví dụ: chmod($RandomFile, 0644);. Ảnh dưới là danh sách permission đầy đủ. Nhớ thêm '0' trước permission để PHP interpreter hiểu input là octal.

Đặt Mật Khẩu An Toàn (Set A Secure Password)
Đảm bảo pass site PHP an toàn. Kết hợp số, chữ cái, ký tự. Trước khi đặt pass, check password dictionary phổ biến như Rockyou.txt – pass bạn đặt có trong đó không. Linux user dùng Grep: grep -i '*YourNewpass*' rockyou.txt. Tool online cũng tạo pass secure, dài, random.
Tắt Directory Indexing (Disable Directory Indexing)
Tắt indexing thư mục cụ thể, thêm code vào .htaccess (tạo nếu chưa có):
Options -Indexes
Dùng Hosting An Toàn (Use Secure Hosting)
Tìm hosting: đảm bảo cung cấp firewall/giải pháp bảo mật như Astra Security với integrated hosting partners. Đảm bảo subnetting isolate site khỏi site khác trên cùng server.
PHP Code Audit
Sau khi tạo custom PHP site, xây lại từ đầu không feasible về kinh tế. Do đó code audit là cách tốt nhất bắt lỗ hổng trước attacker. Astra Security có community hacker lớn audit & pentest bảo mật site bạn.