Xmlrpc là gì? Và vì sao ta nên vô hiệu file xmlrpc.php?

1. Xmlrpc.php là gì?

XML-RPC là tính năng của WordPress để giúp truyền tải dữ liệu, với HTTP làm công cụ truyền và XML làm công cụ encode (mã hóa). Vì WordPress không phải là hệ thống đóng hoàn toàn nên tính năng này được tạo ra để khi WordPress cần giao tiếp với các hệ thống bên ngoài.

Ví dụ, bạn muốn đăng bài viết lên site từ điện thoại và không có máy tính bên cạnh. Bạn có thể dùng tính năng truy cập từ xa được kích hoạt bởi xmlrpc.php để đăng bài.

Chức năng chính mà xmlrpc.php kích hoạt là cho phép giao tiếp giữa điện thoại và site của bạn được thiết lập, thiết lập trackback và pingbacks từ các site khác, và một số tính năng liên kết với plugin Jetpac.

2. Vì sao Xmlrpc.php được tạo và trước đây nó được dùng làm gì?

Sự ra đời của XML-RPC ở vào những ngày đầu của WordPress trước khi được gọi là WordPress.

Lúc trước, khi kết nối internet còn chậ, quá trình viết bài và xuất bản bài viết lên web còn khó khăn và tốn nhiều gian. Thay vì viết bài ngay trên trình duyệt, mọi người thường viết bài trên máy tính sau đó copy và dán nội dung vào web. Tuy nhiên, cách này cũng không phải tốt nhất.

Giải pháp thay thế vào lúc ấy là tạo một blogging client offline, nơi bạn có thể viết nội dung, sau đó kết nối tới blog của bạn để xuất bản nó. Kết nối này được thực hiệnt thông qua XML-RPC. Với nền tảng XML-RPC, những ứng dụng ban đầu sử dụng loại kết nối này để giúp người dùng đăng nhập WordPress từ thiết bị của họ.

3. XML-RPC ngày nay

Vào năm 2008, với phiên bản WordPress 2.6, đã có lựa chọn để bạn có thể kích hoạt hoặc vô hiệu XML-RPC. Tuy nhiên, sau khi có ứng dụng  WordPress iPhone app, XML-RPC được kích hoạt mặc định, và không thể tắt hoàn toàn chức năng này được trong setting. Tình trạng này vẫn được giữ nguyên đến nay.

Tuy nhiên, chức năng của files này đã giảm thiểu đáng kể theo thời gian, và kích thước của file đã giảm từ 83kb còn 3kb, vì vậy nó không đóng vai trò lớn như trước đây.

4. Tương lai của XML-RPC

Với WordPress API mới, chúng ta có thể thấy XML-RPC sẽ sớm bị loại bỏ hoàn toàn. Mặc dù API mới vẫn đang trong giai đoạn thử nghiệm và chỉ có thể dùng khi kích hoạt plugin.

Tuy nhiên, API mới sẽ được code trực tiếp vào trong WordPress core, để loại bỏ hoàn toàn file xmlrpc.php, vì lúc này nó hoàn toàn không cần thiết nữa.

API mới không hoàn hảo, nhưng qua thời gian nó sẽ mạnh mẽ hơn, bảo mật tốt hơn và giải quyết tất cả vấn đề mà xmlrpc.php đang có.

2. Tại sao bạn nên vô hiệu WordPress Xmlrpc.php

Vấn đề lớn nhất của XML-RPC là bảo mật. Chúng không tới từ bản thân XML-RPC, mà từ file xmlrpc.php bị dùng làm phương pháp tấn công brute force lên chính bản thân website chứa nó.

Dĩ nhiên, bạn có thể tự bảo vệ bằng cách tạo một mật khẩu cực mạnh, và dùng thêm plugin WordPress bảo mật. Nhưng cách tốt nhất là cứ vô hiệu hẵn nó đi.

– Có 2 yếu điểm của xmlrpc mà bị lạm dụng trước đây.

Đầu tiên là dùng brute force attack để tấn công hoàn toàn vào website. Một hacker sẽ thử truy cập website của bạn bằng cách tận dung file xmlrpc.php để truy cập bằng nhiều tổ hợp đã được biết đến của username và password. Chỉ cần một command là có thể chạy tự động hằng trăm password khác nhau để thử truy cập. Việc này bypass được các công cụ bảo mật vì các công cụ này không bảo vệ được nếu tấn công qua được xmlrpc.

Cách thứ 2 là tấn công DDoS vào website khiến nó bị down. Hackers có thể sử dụng tính năng pingback trong WordPress để gửi pingbacks tới hàng ngàn sites cùng lúc. Xmlrpc.php mở đường cho hacker phát tán việc tấn công DDoS bằng việc hỗ trợ gần như không giới hạn số IP address

Để kiểm tra xem XML-RPC có đang chạy không, bạn có thể dùng tool XML-RPC Validator để chạy thử. Nếu site có thể vận hành được và nếu thấy báo lỗi có nghĩa là site của bạn chưa kích hoạt XML-RPC.

Nếu không thấy lỗi, bạn có thể ngưng xmlrpc.php lại bằng 2 phương pháp bên dưới

Phương pháp 1: Vô hiệu Xmlrpc.php bằng Plugins

Vô hiệu XML-RPC trên WordPress rất đơn giản.

Bạn chỉ cần chuyển tới mục Plugins › Add New trong WordPress dashboard. Tìm plugin Disable XML-RPC và cài đặt plugin như bên dưới:

Kích hoạt plugin này là được. Plugin sẽ tự động chạy code cần thiết để tắt XML-RPC.

Tuy nhiên, có thể có nhiều plugin khác đang dùng một yếu tố của XML-RPC, vì vậy, vô hiệu nó hoàn toàn có thể gây lỗi xung đột plugin và khiến site không hoạt động.

Nếu bạn chỉ muốn tắt từng phần của XML-RPC, nhưng vẫn cho phép plugin và chức năng nào chạy, hãy cài những plugin khác như bên dưới:

  • Stop XML-RPC Attack. Plugin này sẽ chặn mọi tấn công bằng XML-RPC, nhưng nó vẫn cho phép các plugin như Jetpack, và nhiều công cụ tự động khác truy cập vào file xmlrpc.php.
  • Control XML-RPC Publishing. Cho phép kiểm soát và sử dụng công cụ6 xuất bản từ xa bằng xmlrpc.php.

Phương pháp 2: Vô hiệu WordPress Xmlrpc.php thủ công

Nếu bạn không thích plugin và thích tự làm việc này. Vậy hãy làm theo cách sau. Nó sẽ giúp bạn chặn tất cả những yêu cầu tới xmlrpc.php trước khi được chuyển qua WordPress.

Mở file .htaccess. Bạn có thể dùng tính năng ‘show hidden files’ trong file manager hoặc FTP client để thấy file này. Bên trong file .htaccess, dán đoạn code sau vào:

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

Leave a Reply