Xmlrpc.php là gì? Đây là thành phần cốt lõi kết nối website với ứng dụng bên ngoài qua giao thức XML-RPC. Nó cho phép đăng bài và chỉnh sửa nội dung từ xa, hỗ trợ quản trị viên quản lý trang web. Tuy nhiên, do có lỗ hổng bảo mật, file này dễ bị tấn công, gây nguy cơ mất kiểm soát. Vì vậy, việc quản lý và bảo vệ xmlrpc.php là cần thiết để đảm bảo an toàn hệ thống. Mời bạn tìm hiểu chi tiết hơn qua bài viết sau đây của VinaHost.
1. Xmlrpc.php là gì?
Xmlrpc.php (XML Remote Procedure Call) là một giao thức sử dụng HTTP để truyền tải dữ liệu và XML để mã hóa thông tin. Trong WordPress, file xmlrpc.php được tích hợp sẵn nhằm cho phép các ứng dụng bên ngoài (như ứng dụng di động hay các phần mềm viết blog) gửi yêu cầu và nhận phản hồi thông qua XML.
Cụ thể, file này cho phép các chức năng như:
- Đăng bài từ xa: Bạn có thể tạo, chỉnh sửa hay xóa bài viết từ các ứng dụng bên ngoài (ví dụ: ứng dụng di động, Windows Live Writer…).
- Hỗ trợ pingback và trackback: Giúp thông báo khi trang khác liên kết đến nội dung của bạn.
- Tích hợp với các dịch vụ khác: Như plugin Jetpack để kết nối với WordPress.com.
Tuy nhiên, vì xmlrpc.php có thể bị lợi dụng để thực hiện các cuộc tấn công (như brute force hay DDoS) nên nhiều quản trị viên khuyến cáo nên vô hiệu hóa hoặc hạn chế sử dụng file này nếu không cần thiết.

2. Cách thức hoạt động của XMLRPC.PHP
2.1. Gửi yêu cầu từ phía client
- Khởi tạo yêu cầu: Một ứng dụng (XMLRPC client) sẽ tạo ra một yêu cầu XML.
- Mã hóa yêu cầu: Yêu cầu được mã hóa bằng cách sử dụng hàm như xmlrpc_encode_request(), chuyển đổi tên hàm (method) cùng với các tham số cần thiết thành một chuỗi XML.
- Gửi qua HTTP: Yêu cầu được gửi tới URL chứa file xmlrpc.php của trang WordPress thông qua phương thức POST của HTTP.
2.2. Xử lý yêu cầu tại server
- Nhận yêu cầu: Khi server nhận được yêu cầu từ client, file xmlrpc.php sẽ hoạt động như một XMLRPC server.
- Giải mã dữ liệu: Server sử dụng hàm như xmlrpc_decode_request() để chuyển đổi dữ liệu XML nhận được thành mảng hoặc đối tượng trong PHP, từ đó xác định phương thức (method) và các tham số được truyền vào.
- Xác thực và kiểm tra quyền: Trước khi gọi hàm tương ứng, WordPress sẽ kiểm tra thông tin đăng nhập (username, password) đi kèm yêu cầu để đảm bảo người gửi có quyền thực hiện hành động đó.
- Gọi hàm tương ứng: Dựa trên tên method, WordPress sẽ tìm và thực thi hàm đã được đăng ký (thông qua bộ lọc xmlrpc_methods). Ví dụ, khi gọi phương thức “demo.sayHello”, hệ thống sẽ chuyển sang thực hiện hàm tương ứng đã được khai báo.
- Xử lý logic: Trong quá trình thực thi, các chức năng của WordPress (như đăng bài, chỉnh sửa nội dung, lấy danh sách bài viết, v.v…) được kích hoạt dựa trên yêu cầu từ client.
2.3. Trả về phản hồi cho client
- Mã hóa phản hồi: Sau khi xử lý xong, kết quả (dữ liệu trả về hoặc thông báo lỗi) được chuyển đổi thành định dạng XML bằng cách sử dụng hàm xmlrpc_encode_response().
- Gửi phản hồi: Dữ liệu XML sau khi mã hóa sẽ được gửi trở lại cho client dưới dạng HTTP response.
Xem thêm: Botnet là gì? | Cách phòng chống DDoS Botnet hiệu quả nhất
3. Ưu và nhược điểm của XMLRPC.PHP
3.1. Ưu điểm
- Cho phép giao tiếp từ xa: XMLRPC.PHP tạo điều kiện cho các ứng dụng bên ngoài (như ứng dụng di động, Windows Live Writer, IFTTT,…) có thể đăng bài, chỉnh sửa nội dung và quản lý trang WordPress từ xa.
- Tích hợp linh hoạt với các dịch vụ bên ngoài: Nhờ giao thức chuẩn hóa (HTTP và XML), XMLRPC giúp kết nối dễ dàng giữa WordPress và các hệ thống, cho phép tích hợp với các dịch vụ như Jetpack để đồng bộ dữ liệu giữa các nền tảng khác nhau.
- Hỗ trợ các tính năng cũ: Trước khi API REST ra đời, XMLRPC là giải pháp duy nhất cho việc giao tiếp từ xa của WordPress. Điều này cho phép người dùng đã quen với cách thức hoạt động này có thể dễ dàng thực hiện các tác vụ quản trị từ xa.
3.2. Nhược điểm
- Vấn đề bảo mật: XMLRPC.PHP thường là mục tiêu của các cuộc tấn công brute force vì nó truyền tải thông tin đăng nhập qua mỗi yêu cầu. Hacker có thể thử nhiều cặp username và password để dò mật khẩu.
- Dễ bị lợi dụng cho tấn công DDoS: Tính năng pingback trong XMLRPC có thể bị lạm dụng để gửi một số lượng lớn yêu cầu từ nhiều địa chỉ IP, gây quá tải cho server (HTTP Flood Attack).
- Đã lỗi thời: Với sự ra đời của API REST tích hợp vào WordPress, XMLRPC đã không còn là giải pháp giao tiếp tối ưu nữa. REST API cung cấp khả năng bảo mật và hiệu suất cao hơn, do đó nhiều quản trị viên khuyến cáo vô hiệu hóa XMLRPC nếu không cần thiết.
- Tăng rủi ro xâm nhập: Vì mỗi yêu cầu của XMLRPC thường chứa thông tin nhạy cảm, nên nếu không được bảo mật chặt chẽ, nó có thể là cánh cửa cho hacker xâm nhập vào hệ thống WordPress.

Xem thêm: Rootkit là gì? | Phân loại & Cách hoạt động của Rootkit
4. Hướng dẫn cách kích hoạt Xmlrpc.php trên WordPress
Để kích hoạt file xmlrpc.php trên WordPress, bạn có thể thực hiện theo các bước sau:
4.1. Bước 1: Cài đặt plugin hỗ trợ kích hoạt XMLRPC
Vào Dashboard => Plugins => Add New, sau đó tìm kiếm “Control XMLRPC Publishing” và cài đặt plugin này.
4.2. Bước 2: Kích hoạt tính năng XMLRPC trong WordPress
- Sau khi cài đặt plugin, vào mục Settings (Cài đặt) của WordPress.
- Chọn Writing (Viết bài) hoặc mục Remote Publishing (Xuất bản từ xa) (tùy giao diện quản trị của WordPress).
- Tại đây, tìm mục Remote Publishing with XMLRPC và chuyển nó sang trạng thái Enabled (Bật).
4.3. Bước 3: Lưu lại cài đặt
Nhấn Save Changes để lưu lại các thay đổi.
Sau khi lưu, tính năng XMLRPC đã được kích hoạt và file xmlrpc.php sẽ cho phép các ứng dụng bên ngoài gửi yêu cầu tới website của bạn.
5. Tại sao nên vô hiệu hóa Xmlrpc?
Việc vô hiệu hóa XMLRPC trong WordPress được khuyến khích chủ yếu do những rủi ro bảo mật.
5.1. Rủi ro bảo mật
- Tấn công brute force: Mỗi yêu cầu qua XMLRPC đều có thể chứa thông tin đăng nhập (username và password). Hacker có thể lợi dụng điều này bằng cách gửi hàng trăm – thậm chí hàng nghìn yêu cầu với các cặp thông tin khác nhau để dò mật khẩu hợp lệ. Khi tấn công thành công, kẻ xấu có thể truy cập vào hệ thống quản trị WordPress của bạn.
- Tấn công DDoS qua pingback: XMLRPC hỗ trợ tính năng pingback, cho phép một trang web thông báo khi có trang khác liên kết đến nội dung của nó. Hacker có thể lợi dụng tính năng này để gửi một số lượng lớn yêu cầu pingback đồng thời từ nhiều địa chỉ IP, gây quá tải máy chủ (HTTP Flood Attack) và làm cho trang web bị gián đoạn hoặc sập.
- Lỗ hổng bảo mật tiềm ẩn: Do bản chất của XMLRPC, file này luôn mở ra một “cửa” để các ứng dụng bên ngoài giao tiếp với trang web. Nếu không được bảo mật đúng cách (ví dụ: thông qua xác thực, giới hạn IP, v.v…), đây có thể trở thành điểm dễ bị khai thác để thực hiện các cuộc tấn công nhằm chiếm quyền kiểm soát hoặc phá hoại trang web.
5.2. Tác động đến hiệu suất và tài nguyên
- Tăng tải máy chủ: Khi XMLRPC không được giới hạn, các cuộc tấn công (như brute force hoặc DDoS) có thể làm tăng lượng truy cập và tiêu thụ tài nguyên máy chủ không cần thiết. Điều này dẫn đến giảm tốc độ phản hồi của website hoặc thậm chí gây sập hệ thống.
- Tác động đến hoạt động bình thường: Nếu các cuộc tấn công liên quan đến XMLRPC diễn ra thường xuyên, nó có thể ảnh hưởng đến khả năng phục vụ nội dung cho người dùng hợp pháp, gây ra tình trạng “lag” hay downtime không mong muốn.
5.3. Sự ra đời của các giải pháp thay thế
Kể từ phiên bản WordPress 4.4, API REST đã được tích hợp vào lõi hệ thống, cung cấp phương thức giao tiếp hiện đại và an toàn hơn so với XMLRPC. REST API sử dụng các tiêu chuẩn bảo mật như OAuth và cho phép kiểm soát chi tiết hơn về quyền truy cập.
Trong thời gian trước đây, XMLRPC được dùng chủ yếu để hỗ trợ các ứng dụng di động và client từ xa. Tuy nhiên, với sự phát triển của API REST và các ứng dụng quản trị hiện đại, nhu cầu duy trì XMLRPC đã giảm dần, đồng thời các quản trị viên luôn ưu tiên bảo mật hệ thống hơn.

Xem thêm: Ransomware là gì? | Cách xử lý & Phòng chống Ransomware
6. Hướng dẫn cách nhận biết và vô hiệu Xmlrpc.php chi tiết
6.1. Cách nhận biết bị tấn công trên Xmlrpc.php
Để nhận biết trang WordPress của bạn đang bị tấn công qua XMLRPC, bạn có thể kiểm tra theo các cách sau đây:
6.1.1. Kiểm tra tệp log của server
- Tìm kiếm các yêu cầu POST liên tục gửi đến file xmlrpc.php.
- Nếu bạn thấy số lượng yêu cầu tăng đột biến so với mức bình thường hoặc nhiều yêu cầu đến từ cùng một địa chỉ IP (hoặc tập hợp các IP có mẫu giống nhau), đó là dấu hiệu cảnh báo.
- Ví dụ: Một chuỗi các dòng log với địa chỉ IP giống nhau gửi yêu cầu POST liên tiếp trong khoảng thời gian ngắn.
Bạn có thể dùng các công cụ như AWStats, Webalizer hoặc lệnh grep trên Linux để lọc các truy cập đến xmlrpc.php và xác định mức độ tăng đột biến của các yêu cầu này.
6.1.2. Quan sát hoạt động pingback và trackback
Hãy kiểm tra phần nhận xét (comment) hoặc các mục pingback trong dashboard để xác định các pingback bất thường. XMLRPC hỗ trợ chức năng pingback. Nếu bạn nhận thấy số lượng pingback đến website tăng đột biến hoặc các pingback đến từ các nguồn không xác định, đây có thể là dấu hiệu của một cuộc tấn công DDoS thông qua XMLRPC.
6.1.3. Phân tích mẫu truy cập và thông tin đăng nhập
Nếu bạn thấy nhiều yêu cầu đăng nhập từ xmlrpc.php với các cặp username, password không thành công (có thể do tấn công brute force), đó cũng là dấu hiệu báo động. Hãy kiểm tra log để xác định nếu có sự lặp lại của các yêu cầu đăng nhập từ cùng một địa chỉ IP hoặc từ các địa chỉ IP khác nhau theo một mẫu nhất định.
6.2. Cách vô hiệu hóa Xmlrpc.PHP
Việc vô hiệu hóa xmlrpc.php có thể giúp giảm thiểu nguy cơ tấn công brute force, DDoS và các lỗ hổng bảo mật khác liên quan đến giao thức XML-RPC.
6.2.1. Sử dụng Plugins WordPress
Bạn chỉ cần thực hiện theo các hướng dẫn sau đây:
- Truy cập vào bảng điều khiển (Dashboard) của WordPress.
- Vào phần Plugins và chọn “Add New”. Tìm kiếm plugin “Disable XMLRPC” và tiến hành cài đặt.
- Kích hoạt plugin “Disable XMLRPC” để tắt chức năng XMLRPC.
Trong một vài trường hợp có thể xảy ra vấn đề nếu một số plugin khác phụ thuộc vào XMLRPC, dẫn đến gián đoạn hoạt động của website khi vô hiệu hóa hoàn toàn tính năng này.
Để khắc phục, bạn có thể sử dụng các giải pháp thay thế sau:
- Cài đặt plugin “Stop XMLRPC Attack” để chặn các cuộc tấn công qua XMLRPC, đồng thời cho phép các plugin như Jetpack truy cập vào file xmlrpc.php.
- Sử dụng plugin “Control XMLRPC Publishing” để dễ dàng bật/tắt XMLRPC tùy thuộc vào nhu cầu.
- Cài đặt plugin “iThemes Security” và trong phần Security → Settings → WordPress Tweak, chọn tùy chọn Disable XML-RPC.

6.2.2. Chỉnh sửa file .htaccess
Bước 1: Mở file .htaccess nằm ở thư mục gốc của website (điều này áp dụng khi bạn sử dụng Web Hosting hoặc máy chủ cài Apache).
Bước 2: Chèn đoạn mã sau vào file đó.
# DISABLE XML RPC
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
#END
6.2.3. Thêm rule trên Nginx
Bước 1: Mở file cấu hình domain trên NGINX.
Bước 2: Thêm đoạn mã dưới đây vào file cấu hình:
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}
Bước 3: Khởi động lại NGINX bằng cách chọn lệnh “service nginx restart”.
7. Những lựa chọn thay thế cho XMLRPC.PHP phổ biến
Dưới đây là một số lựa chọn thay thế phổ biến cho XMLRPC.PHP
7.1. REST API của WordPress
REST API được tích hợp sẵn từ WordPress phiên bản 4.7 trở đi, cho phép giao tiếp giữa các ứng dụng và website thông qua các endpoint RESTful.
Ưu điểm:
- An toàn hơn nhờ vào các phương thức xác thực hiện đại (ví dụ: OAuth, cookie authentication).
- Linh hoạt và dễ mở rộng, hỗ trợ nhiều định dạng dữ liệu (JSON).
- Hỗ trợ tốt cho các ứng dụng hiện đại, từ web đến mobile.
Nhược điểm:
- Có thể cần thời gian để làm quen với cú pháp và cách thiết kế endpoint.
- Một số plugin cũ có thể chưa tương thích hoàn toàn với REST API.
7.2. GraphQL (WPGraphQL)
WPGraphQL là một plugin cung cấp giao diện GraphQL cho WordPress, cho phép truy vấn dữ liệu một cách hiệu quả và linh hoạt hơn so với REST API truyền thống.
Ưu điểm:
- Cung cấp khả năng truy vấn dữ liệu chi tiết, chỉ lấy những thông tin cần thiết.
- Giảm tải dữ liệu và tối ưu hiệu suất khi làm việc với các ứng dụng phức tạp.
Nhược điểm:
- Đòi hỏi kiến thức về GraphQL và cách thiết kế schema.
- Cộng đồng và tài liệu hướng dẫn chưa rộng rãi bằng REST API.
Xem thêm: Spyware là gì? | Cách Loại bỏ & Phòng chống Spyware
8. Một số câu hỏi liên quan đến Xmlrpc.php
Dưới đây là giải thích chi tiết về một số khái niệm liên quan đến xmlrpc.php:
8.1. XMLRPC.PHP Server là gì?
XMLRPC.PHP Server là thành phần phía máy chủ (server-side) trong hệ thống XML-RPC của WordPress. Khi một ứng dụng hoặc dịch vụ bên ngoài gửi yêu cầu từ xa, file xmlrpc.php sẽ đảm nhiệm vai trò server bằng cách:
- Nhận và giải mã dữ liệu XML: Khi nhận được yêu cầu từ client, server sẽ sử dụng các hàm như xmlrpc_decode_request() để chuyển đổi dữ liệu XML thành dạng dữ liệu PHP (thường là mảng hoặc đối tượng).
- Xác thực và xử lý yêu cầu: Trước khi thực hiện hành động, server kiểm tra thông tin đăng nhập và quyền truy cập của yêu cầu. Sau đó, dựa vào tên method được gọi, nó xác định và thực thi hàm tương ứng đã được đăng ký (thường thông qua bộ lọc xmlrpc_methods).
- Trả về kết quả: Sau khi hoàn thành tác vụ, kết quả sẽ được mã hóa lại thành XML bằng hàm xmlrpc_encode_response() và gửi lại cho client.
Như vậy, XMLRPC.PHP Server đóng vai trò như một “cổng” nhận và xử lý các lệnh gọi thủ tục từ xa, giúp WordPress có thể tương tác với các ứng dụng bên ngoài qua giao thức XML-RPC.
8.2. XMLRPC.PHP Client là gì?
XMLRPC.PHP Client là thành phần phía khách (client-side) trong hệ thống XML-RPC, chịu trách nhiệm gửi các yêu cầu từ xa đến server. Cụ thể, client thực hiện các bước sau:
- Mã hóa yêu cầu: Sử dụng hàm xmlrpc_encode_request() để chuyển đổi tên method cùng các tham số cần thiết thành một chuỗi XML. Quá trình này đảm bảo rằng dữ liệu được định dạng theo chuẩn XML-RPC.
- Gửi yêu cầu qua HTTP: Sau khi mã hóa, client gửi dữ liệu XML này tới địa chỉ URL chứa file xmlrpc.php của WordPress (thông qua phương thức POST).
- Nhận và giải mã phản hồi: Khi server xử lý xong yêu cầu và trả về kết quả dưới dạng XML, client sẽ sử dụng hàm xmlrpc_decode() để chuyển đổi phản hồi XML đó thành dạng dữ liệu mà ứng dụng có thể sử dụng được.
Thông qua XMLRPC.PHP Client, các ứng dụng bên ngoài có thể thực hiện các tác vụ như đăng bài, chỉnh sửa nội dung, hoặc lấy danh sách các bài viết từ trang WordPress mà không cần truy cập trực tiếp vào giao diện quản trị.
Xem thêm: Bytefence Anti-Malware là gì? Hướng dẫn cách xoá chi tiết
9. Tổng kết
Xmlrpc.php là một thành phần hữu ích của WordPress giúp giao tiếp từ xa qua XML-RPC, nhưng cũng mang lại những rủi ro bảo mật nếu không được quản lý chặt chẽ. Việc nhận thức rõ về cơ chế hoạt động và các lỗ hổng tiềm ẩn sẽ giúp bạn đưa ra quyết định sử dụng, cấu hình hay vô hiệu hóa tính năng này nhằm bảo vệ website một cách hiệu quả nhất.
Mời bạn truy cập vào blog của VinaHost TẠI ĐÂY để theo dõi thêm nhiều bài viết mới. Hoặc nếu bạn muốn được tư vấn thêm về dịch vụ WordPress Hosting, Hosting giá rẻ, Hosting NVMe, Business Hosting, VPS giá rẻ, VPS NVMe thì có thể liên hệ với chúng tôi qua:
- Email: support@vinahost.vn
- Hotline: 1900 6046
- Livechat: https://livechat.vinahost.vn/chat.php
Xem thêm một số bài viết khác:
Phishing là gì? | 10 Loại tấn công Phishing [Nguy Hiểm]
ClickFix Malware là gì? | 4 cách phòng tránh hiệu quả
Trojan là gì? | Dấu hiệu & Ngăn chặn Virus Trojan