XML-RPC là gì? Nó có vai trò gì đối với trang web WordPress? Và làm cách nào để nâng cao bảo mật cho website WordPress?
Bài viết này của BKHOST sẽ giúp các bạn làm rõ về các vấn đề trên. Nào, chúng ta hãy cùng bắt đầu!
XML-RPC là gì?
XML-RPC là một tính năng dùng để truyền tải dữ liệu của WordPress.
Nó sử dụng HTTP làm công cụ truyền tải dữ liệu và XML làm công cụ mã hóa (encode).
Tính năng này được WordPress xây dựng và phát triển nhằm mục đích giao tiếp với các hệ thống bên ngoài vì WordPress không phải là hệ thống đóng hoàn toàn.
XML-RPC cho phép người dùng thiết lập kết nối từ điện thoại đến website. Đồng thời nó cũng cho phép thiết lập trackbacks và pingbacks từ các trang web khác, cùng các tính năng liên kết với plugin Jetpack.
Mục đích sử dụng của XML-RPC
Trước đây, khi mạng internet còn nhiều hạn chế, quá trình tạo và đăng bài diễn ra rất chậm, khiến tiêu tốn rất nhiều thời gian. Vì vậy, người ta thường ít khi viết bài trực tiếp vào trình duyệt mà soạn thảo trên máy tính. Sau đó copy paste vào website. Cách làm này tuy khá dễ dàng nhưng nó chưa phải tốt nhất.
Để giải quyết vấn đề này, XML-RPC ra đời, nó giúp kết nối, và truyền tải dữ liệu từ một blogging client offline nào đó (nơi người dùng viết nội dung) đến trang web.
XML-RPC tại thời điểm hiện tại
Năm 2008, WordPress đã tung ra phiên bản WordPress 2.6, bạn có thể tùy chọn kích hoạt hoặc vô hiệu XML-RPC . Tuy nhiên, kể từ khi ứng dụng WordPress iPhone app ra đời thì XML-RPC theo mặc định đã được kích hoạt, và bạn không thể tắt hoàn toàn tính năng này trong setting. Kể từ đó trạng thái này vẫn được duy trì đến nay.
Theo thời gian, chức năng của file xmlrpc.php này đã bị giảm đi đáng kể, và kích thước của file đã bị rút gọn đi rất nhiều từ 83kb còn 3kb. Vì vậy, đến thời điểm hiện tại, file này không còn đóng vai trò quá lớn như trước đây.
XML-RPC trong tương lai
Với sự xuất hiện của WordPress API mới, trong tương lai XML-RPC có thể sẽ bị loại bỏ hoàn toàn khỏi mã nguồn WordPress. Mặc dù hiện nay API mới vẫn còn đang trong quá trình thử nghiệm và bạn chỉ có thể sử dụng khi kích hoạt plugin.
WordPress API mới trong tương lai sẽ được viết trực tiếp vào WordPress core, để thay thế hoàn toàn cho file xmlrpc.php, vì file này không còn cần thiết nữa.
Có thể khẳng định, API mới sẽ ngày càng được cải tiến và mạnh mẽ hơn theo thời gian, nó sẽ giải quyết tất cả các vấn đề mà XML-RPC đang gặp phải.
Cách thức hoạt động của XMLRPC
Về bản chất, XML-RPC bao gồm 2 thành phần cơ bản là XMLRPC server và XMLRPC client.
XMLRPC server là một web server, nó có nhiệm vụ tiếp nhận thông tin đã được mã hóa từ XMLRPC client.
XMLRPC client có 2 nhiệm vụ:
- Sử dụng XML để mã hóa nội dung.
- Gửi nội dung đã được mã hóa đến XML server
Tại sao bạn nên vô hiệu WordPress Xmlrpc.php ?
Nhược điểm lớn nhất của XML-RPC là nằm ở vấn đề bảo mật. Mà nguyên nhân cốt lõi lại đến từ việc file xmlrpc.php bị lợi dụng để tấn công brute force lên chính website sử dụng nó.
Tất nhiên, bạn có thể phòng tránh bằng cách sử dụng mật khẩu cực mạnh, và cài thêm plugin bảo mật. Nhưng cách đơn giản và hiệu quả nhất vẫn là vô hiệu hóa hoàn toàn file này.
XML-RPC tồn tại 2 yếu điểm khiến nó dễ lạm dụng:
- Thứ nhất: Hacker có thể tấn công trang web của bạn bằng cách tận dụng lỗ hổng bảo mật của file xmlrpc.php, họ có thể truy cập trang web của bạn bằng việc sử dụng nhiều tổ hợp của username và password. Chỉ cần sử dụng một vài lệnh đơn giản là hacker có thể tạo ra hàng trăm mật khẩu khác nhau để thử đăng nhập. Tìm hiểu thêm về hacker tại đây: Hack là gì?
- Thứ hai: Cách tiếp theo là phát động cuộc tấn công DDoS vào trang web khiến nó bị down. Hackers có thể lợi dụng tính năng pingback của WordPress để gửi pingbacks đồng thời tới hàng ngàn sites cùng lúc. Điều đáng nói là file xmlrpc.php lại hỗ trợ gần như không giới hạn số lượng địa chỉ IP, là điểm yếu dễ bị hacker lợi dụng khai thác để thực hiện cuộc tấn công DDoS. Xem thêm: Cách chống ddos cho website.
Để kiểm tra XML-RPC có đang hoạt động hay không, bạn hãy sử dụng tool XML-RPC Validator để chạy thử. Nếu website vẫn hoạt động bình thường và xuất hiện thông báo lỗi thì website của bạn chưa được kích hoạt XML-RPC.
Hướng dẫn vô hiệu XML-RPC
Để vô hiệu hóa XML-RPC trong WordPress bạn có thể sử dụng một trong hai phương pháp sau:
Cách 1: Vô hiệu XML-RPC bằng plugin
Cách này tương đối đơn giản, bạn chỉ cần tải, cài đặt và kích hoạt plugin là xong. Cụ thể bạn cần thực hiện theo hướng đẫn sau:
Đầu tiên, bạn cần truy cập vào trang quản trị Admin, rồi click vào mục Plugins, chọn Add New.
Tiếp đến, bạn tìm plugin tên là “Disable XML-RPC”. Tìm đến plugin như bên dưới và tiến hành cài đặt.
Sau khi cài đặt xong, click vào “Active Now” để kích hoạt. Sau khi kích hoạt plugin sẽ tự động thực thi các lệnh code cần thiết để vô hiệu XML-RPC.
Tuy nhiên, bạn cần lưu ý có thể sẽ có một số plugin khác đang sử dụng một tính năng nào đó của XML-RPC. Vì vậy, nếu tắt nó hoàn toàn có thể sẽ có thể dẫn đến xung đột plugin và khiến trang web của bạn ngừng hoạt động.
Để khắc phục tình trạng trên, bạn có thể tắt từng phần của XML-RPC (vẫn cho phép plugin và chức năng nào chạy), hãy sử dụng một số plugin dưới đây:
- Stop XML-RPC Attack: Plugin có khả năng ngăn chặn mọi cuộc tấn công bằng XML-RPC, nhưng một số plugin như Jetpack, và nhiều công cụ khác vẫn được quyền truy cập file xmlrpc.php.
- Control XML-RPC Publishing: Plugin này cung cấp khả năng kiểm soát và điều khiển các công cụ xuất bản từ xa thông qua xmlrpc.php.
Cách 2: Vô hiệu file mlrpc.php bằng file .htaccess
Nếu không muốn sử dụng plugin, thì bạn có thể vô hiệu file xmlrpc.php bằng cách sử dụng file htaccess. File này sẽ giúp bạn ngăn chặn các request tới xmlrpc.php trước khi được đưa tới WordPress.
Tìm hiểu thêm về file .htaccess tại đây:
Đầu tiên, bạn cần mở file .htaccess lên. Thường thì file này sẽ bị ẩn, bạn hãy sử dụng tính năng “show hidden files” để có thể nhìn thấy nó.
Sau đó, bạn hãy dán đoạn code dưới đây vào trong file này.
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>
Tổng kết về XML-RPC
Như vậy, các bạn có thể thấy rằng XMLRPC là một giải pháp để truyền tải dữ liệu và đăng bài từ xa cho các website WordPress. Tuy nhiên, giải pháp này tồn tại nhiều lỗ hổng bảo mật và tạo điều kiện cho hacker tấn công. Vì vậy, để đảm bảo an toàn bạn nên tắt tính năng này đi.
Hy vọng với những thông tin mà BKHOST chia sẻ ở trên sẽ giúp bạn hiểu rõ hơn về XMLRPC. Nếu bạn có bất cứ thắc mắc nào liên quan đến XMLRPC, hãy để lại comment ở bên dưới, chúng tôi sẽ trả lời bạn trong thời gian sớm nhất.
Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kinh nghiệm quản trị website, domain, hosting, vps, server, email doanh nghiệp… Chúc bạn thành công.