XML-RPC là gì? Tại Sao nên Vô Hiệu Hóa XML-RPC NGAY LẬP TỨC?

XML-RPC là một giao thức cho phép các ứng dụng web truy cập vào dữ liệu trên trang web WordPress. Trong bài viết này, chúng ta sẽ tìm hiểu về XML-RPC là gì và tại sao nó có thể là một mối đe dọa cho bảo mật của trang web WordPress của bạn. Cùng với đó là các cách để vô hiệu hóa XML-RPC và bảo vệ trang web của bạn khỏi các cuộc tấn công. Theo dõi ngay nhé!

XML-RPC là gì?

Xmlrpc.php là một tính năng của WordPress cho phép truyền dữ liệu thông qua giao thức HTTP và mã hóa bằng XML. Vì WordPress không phải là một hệ thống độc lập và cần phải giao tiếp với các hệ thống khác, tính năng này được tạo ra để giúp làm việc đó. Nó cho phép bạn đăng bài lên trang web từ thiết bị di động hoặc kết nối với các trang web khác thông qua trackbacks và pingbacks. Ngoài ra, nó cũng hỗ trợ một số chức năng liên quan đến plugin Jetpack.

XML-RPC là gì?

Tuy nhiên, với sự tích hợp của REST API vào lõi WordPress, XML-RPC đã trở nên lỗi thời và không còn được sử dụng nhiều như trước. REST API không chỉ giúp giao tiếp với các ứng dụng di động WordPress, mà còn kết nối với nhiều hệ thống và dịch vụ khác.

Tại sao Xmlrpc.php được tạo ra và nó được sử dụng như thế nào?

Việc triển khai XML-RPC bắt nguồn từ những ngày đầu của WordPress. Vào thời điểm đầu của internet, khi kết nối rất chậm, quá trình viết và xuất bản trên web khó khăn và tốn nhiều thời gian hơn. Thay vì viết trực tiếp trong trình duyệt, hầu hết mọi người sẽ viết ngoại tuyến, sau đó sao chép và dán nội dung của họ lên web.

Tại sao Xmlrpc.php được tạo ra và nó được sử dụng như thế nào?

Giải pháp vào thời điểm đó là tạo ra một ứng dụng viết blog ngoại tuyến, nơi bạn có thể soạn nội dung của mình, sau đó kết nối đến blog của bạn để xuất bản. Kết nối này được thực hiện thông qua XML-RPC. Với khung cơ bản của XML-RPC có sẵn, các ứng dụng đầu tiên đã sử dụng kết nối này để cho phép mọi người đăng nhập vào trang web WordPress của họ từ các thiết bị khác.

XML-RPC ngày nay

Năm 2008, với phiên bản 2.6 của WordPress, đã có một tùy chọn để bật hoặc tắt XML-RPC. Tuy nhiên, với việc phát hành ứng dụng WordPress cho iPhone, hỗ trợ XML-RPC được bật mặc định và không có tùy chọn để tắt cài đặt này. Điều này vẫn đúng cho đến ngày nay.

Tuy nhiên, chức năng của tệp này đã giảm đáng kể theo thời gian, và kích thước tổng thể của tệp đã giảm từ 83kb xuống còn 3kb, do đó nó không còn đóng vai trò quan trọng như trước đây.

Tương lai của XML-RPC

Với API WordPress mới, chúng ta có thể mong đợi XML-RPC sẽ bị loại bỏ hoàn toàn. Hiện nay, API mới này vẫn đang ở giai đoạn thử nghiệm và chỉ có thể được bật qua việc sử dụng plugin.

Tuy nhiên, bạn có thể mong đợi rằng API sẽ được mã hóa trực tiếp vào lõi WordPress trong tương lai, điều này sẽ phần lớn loại bỏ nhu cầu sử dụng tệp xmlrpc.php.

API mới không hoàn hảo, nhưng nó cung cấp một giải pháp mạnh mẽ và an toàn hơn cho vấn đề mà xmlrpc.php đang còn thiếu.

Nếu bạn đang cần gói Hosting WordPress hãy tham khảo Gói WordPress Hosting Giá Rẻ của LANIT ngay nhé!

Cách thức hoạt động của XMLRPC

XML-RPC là một giao thức cho phép truyền dữ liệu giữa hai hệ thống thông qua mạng, sử dụng HTTP làm cơ chế truyền tải và XML làm cơ chế mã hóa.

Khi một yêu cầu được gửi từ một hệ thống đến hệ thống khác thông qua XML-RPC, nó sẽ được mã hóa dưới dạng XML và được gửi dưới dạng yêu cầu HTTP POST. Yêu cầu này chứa một tên phương thức và các tham số liên quan đến phương thức đó.

Sau khi yêu cầu được gửi, hệ thống nhận yêu cầu sẽ giải mã nó, xác định phương thức được yêu cầu và các tham số tương ứng. Sau đó, hệ thống sẽ thực hiện phương thức và trả về kết quả cho hệ thống gửi yêu cầu, cũng dưới dạng XML và đóng gói trong một yêu cầu HTTP trả về.

Cách thức hoạt động của XMLRPC

Làm thế nào để kích hoạt XML-RPC trong WordPress

Bước 1: Để kích hoạt XML-RPC trong WordPress, điều đầu tiên bạn cần làm là đăng nhập vào trang quản trị WordPress của bạn.

Bước 2: Tiếp thep, bạn sẽ cần đi đến cài đặt plugin WordPress và tìm kiếm plugin “Control XML-RPC publishing”. Sau đó nhấn cài đặt

Bước 3: Trên WordPress, chọn Cài đặt (setting), chọn Write, bấm vào Remote publishing with XML-RPC rồi nhấn Enabled để bật XML-RPC

Bước 4: Click Save changes để lưu.

Sau khi bạn đã kích hoạt XML-RPC, bạn có thể sử dụng các ứng dụng và thiết bị khác để kết nối và giao tiếp với trang web WordPress của bạn thông qua XML-RPC.

Vì sao không nên sử dụng XML-RPC?

XML-RPC có một nhược điểm rất lớn liên quan đến vấn đề bảo mật. Vấn đề chính là file xmlrpc.php có thể bị lợi dụng để thực hiện tấn công brute force lên trang web đang sử dụng nó.

Mặc dù bạn có thể sử dụng mật khẩu cực kỳ mạnh và cài đặt các plugin bảo mật để bảo vệ, nhưng cách đơn giản và hiệu quả nhất là tắt hoàn toàn file này.

XML-RPC có hai điểm yếu chính:

  • Kẻ tấn công có thể sử dụng lỗ hổng bảo mật của xmlrpc.php để thực hiện tấn công brute force vào trang web của bạn. Họ có thể thử hàng trăm mật khẩu khác nhau bằng cách sử dụng nhiều tên người dùng khác nhau. Chỉ cần sử dụng một vài lệnh đơn giản là kẻ tấn công có thể tạo ra hàng trăm mật khẩu khác nhau để thử đăng nhập. Điều này làm cho trang web của bạn trở nên dễ bị tấn công.
  • Kẻ tấn công có thể sử dụng tính năng pingback của WordPress trong xmlrpc.php để phát động cuộc tấn công DDoS lên trang web của bạn. Kẻ tấn công có thể gửi pingbacks đồng thời tới hàng ngàn trang web khác nhau, sử dụng địa chỉ IP không giới hạn, làm cho trang web của bạn bị tấn công DDoS và không hoạt động được.

Cách nhận biết XML-RPC.PHP đang bị tấn công

Có một số dấu hiệu cho thấy trang web của bạn đang bị tấn công thông qua file xmlrpc.php, bao gồm:

  • Tăng lượng truy cập
  • Lỗi đăng nhập
  • Tăng lượng băng thông
  • Tăng lượng CPU và RAM

Để kiểm tra xem xmlrpc.php có đang hoạt động trên trang web của bạn hay không, bạn có thể sử dụng công cụ XML-RPC Validator. Nếu bạn nhận được thông báo lỗi, điều đó có nghĩa là xmlrpc.php đã bị tắt trên trang web của bạn.

Cách vô hiệu hóa XMLRP

Bạn có thể vô hiệu hóa XMLRP bằng một trong hai cách dưới đây:

Cách 1: Vô hiệu hóa Xmlrpc.php bằng các plugin

Cách vô hiệu hóa XMLRP

Đầu tiên, hãy truy cập mục Plugins › Add New từ bảng điều khiển WordPress của bạn. Tìm kiếm Disable XML-RPC-API và cài đặt plugin này. Plugin này sẽ tự động chèn mã cần thiết để tắt XML-RPC.

Tuy nhiên, hãy nhớ rằng một số plugin hiện có có thể sử dụng một phần của XML-RPC, vì vậy vô hiệu hóa hoàn toàn nó có thể gây ra xung đột plugin hoặc các yếu tố khác của trang web không hoạt động nữa.

Cách 2: Vô hiệu hóa Xmlrpc.php thủ công

Nếu bạn không muốn sử dụng một plugin và thích làm nó thủ công, hãy làm theo cách này. Nó sẽ ngăn chặn tất cả các yêu cầu xmlrpc.php đến trước khi nó được chuyển đến WordPress.

Mở file .htaccess (Bạn có thể cần bật chế độ hiển thị các tệp ẩn trong trình quản lý tệp hoặc trình FTP).

Trong file .htaccess, dán đoạn code sau đây:

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
</Files>

Thay đổi xxx.xxx.xxx.xxx thành địa chỉ IP mà bạn muốn cho phép truy cập xmlrpc.php hoặc xóa hoàn toàn dòng này.

Lưu file .htaccess và tải lên trang web của bạn. Sau đó, XML-RPC sẽ bị vô hiệu hóa cũng như các yêu cầu đến xmlrpc.php sẽ bị từ chối.

Lưu ý rằng nếu bạn cần sử dụng các tính năng liên quan đến XML-RPC, bạn nên sử dụng phương pháp vô hiệu hóa nâng cao hơn để chỉ vô hiệu hóa các tính năng không cần thiết.

Cách 3: Sửa file trên Nginx

Để vô hiệu hóa XML-RPC trên một trang web WordPress chạy trên Nginx, bạn cần sửa tệp cấu hình của Nginx. Bạn có thể làm theo các bước như sau:

  • Truy cập vào tệp cấu hình của Nginx. Tùy thuộc vào cài đặt của bạn, tệp này có thể nằm ở /etc/nginx/nginx.conf hoặc /etc/nginx/sites-available/default.
  • Tìm đến vị trí nơi bạn muốn thêm mã để vô hiệu hóa XML-RPC. Ví dụ, nếu bạn muốn vô hiệu hóa XML-RPC cho toàn bộ trang web WordPress của mình, bạn có thể thêm mã sau vào khối server trong tệp cấu hình của Nginx:
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}

Đoạn mã này sẽ từ chối tất cả các yêu cầu đến tệp xmlrpc.php trên trang web của bạn.

  • Lưu tệp cấu hình và khởi động lại Nginx để thay đổi có hiệu lực.

Sau khi hoàn tất các bước trên, XML-RPC sẽ bị vô hiệu hóa trên trang web WordPress của bạn chạy trên Nginx.

Kết luận

Như vậy, bài viết trên đây đã giới thiệu các thông tin về XML-RPC là gì? Cũng như cách vô hiệu hoá XML-RPC ngay. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về XML-RPC và cách bảo vệ trang web WordPress của bạn trước các mối đe dọa bảo mật. Chúc bạn thành công!

avata Hải

Triệu Huyền Trang

Triệu Huyền Trang chuyên gia 3 năm kinh nghiệm trong ngành Công Nghệ, Phần Mềm. Chuyên chia sẻ các kiến thức phần mềm mã nguồn, ứng dụng và thông tin về công nghệ hữu ích.

Chat với chúng tôi qua Zalo!
Chat với chúng tôi qua Zalo!