XML-RPC của WordPress là một chức năng khá lỗi thời được tích hợp sẵn trong CMS WordPress. Đây là phương tiện chuẩn hóa truyền thông giữa trang web WordPress và các công nghệ web hoặc di động khác. Nếu bạn là người dùng WordPress, hướng dẫn này sẽ cho bạn biết XML-RPC là gì và tại sao nên tắt nó để bảo vệ mình.
XML-RPC Hoạt Động Như Thế Nào
Trang web WordPress của bạn được thiết kế để hoạt động trên Web. Nó sử dụng các công nghệ web cốt lõi như HTML, CSS và PHP. Tất cả các file này được gói gọn trong thư mục bên trong server lưu trữ của bạn.
Khi người truy cập nhấp vào tên miền hoặc bất kỳ biến thể nào của nó, họ sẽ đến trang web của bạn. Thư mục cụ thể chứa thông tin họ muốn sẽ tải xuống trình duyệt. Bây giờ trình duyệt sẽ diễn giải thông tin này và hiển thị cho họ.
Nhưng nếu bạn không muốn truy cập trang web bằng trình duyệt thì sao? Nếu bạn muốn truy cập từ phần mềm quản trị tùy chỉnh hoặc thậm chí ứng dụng di động?

XML-RPC của WordPress giải quyết vấn đề này.
XML-RPC là một API gói gọn thông tin thiết yếu bên trong một file XML đơn giản và gửi nó đến ứng dụng di động hoặc phần mềm từ xa. Ứng dụng di động sau đó sẽ "phồng" thông tin này với thiết kế được cấu hình sẵn của riêng nó. Ứng dụng di động trong trường hợp này không còn cần tải xuống các file trang web cồng kềnh, và bạn vẫn có thể truy cập dữ liệu trong một ứng dụng tiện lợi.
Tuy nghe có vẻ tốt, vấn đề duy nhất là bạn sẽ phải gửi tên người dùng và mật khẩu mỗi khi muốn xác thực qua XML-RPC. Điều này làm cho nó rất dễ bị tấn công bởi hacker.
XML-RPC Làm Bạn Dễ Bị Tấn Công Như Thế Nào
XML-RPC để trang web của bạn dễ bị tấn công theo ít nhất hai cách: tấn công brute force và đánh cắp thông tin đăng nhập.
1. Tấn Công Brute Force
Kẻ tấn công cố gắng xâm nhập trang web của bạn bằng tấn công brute force.

Tấn công brute force chỉ là một trò chơi đoán. Kẻ tấn công cố gắng đoán mật khẩu của bạn lại và lại cho đến khi thành công.
Nó xảy ra hàng nghìn lần mỗi giây để họ có thể thử hàng triệu tổ hợp trong thời gian ngắn.
Trên trang WordPress, bạn có thể dễ dàng giới hạn tấn công brute force bằng cách giới hạn số lần đăng nhập cho trang web. Tuy nhiên, vấn đề với XML-RPC là nó không giới hạn số lần đăng nhập trên trang của bạn.
Kẻ tấn công có thể tiếp tục đoán bằng cách lừa server của bạn rằng họ là quản trị viên muốn truy xuất thông tin. Vì họ không có thông tin đăng nhập đúng, họ chưa thể truy cập trang, nên họ tiếp tục thử nhiều lần không ngừng.
Vì không có giới hạn số lần thử, chỉ là vấn đề thời gian trước khi họ获得访问权限. Cách này hacker cũng có thể dễ dàng làm sập trang bằng tấn công DDoS XML-RPC (bằng cách gửi sóng yêu cầu "pingback" đến XML-RPC để quá tải và làm sập server).
2. Chặn/Đánh Cắp Thông Tin Đăng Nhập

Điểm yếu khác của XML-RPC là hệ thống xác thực kém hiệu quả. Mỗi khi bạn gửi yêu cầu truy cập trang web, bạn cũng phải gửi thông tin đăng nhập. Điều này có nghĩa là tên người dùng và mật khẩu của bạn bị lộ.
Hacker có thể lőr lốc ở góc để chặn gói thông tin này. Khi thành công, họ không cần phải trải qua quá trình brute force nữa. Họ chỉ cần bước vào trang web của bạn bằng thông tin đăng nhập hợp lệ của bạn.
Tôi Có Nên Tắt XML-RPC Trong WordPress Không?
Kể từ phiên bản WordPress 3.5, đã có nhiều cải tiến cho mã XML-RPC đến mức nhóm WordPress coi nó đủ an toàn để bật mặc định. Nếu bạn đang dựa vào ứng dụng di động hoặc phần mềm từ xa để quản trị trang WordPress, bạn có lẽ không nên tắt XML-RPC.
Nếu bạn rất quan tâm đến bảo mật server, có thể tốt hơn là tắt nó vì nó che lấp một cách mà hacker có thể dùng để tấn công trang của bạn.
Cách Tắt XML-RPC Trong WordPress
XML-RPC được bật mặc định trong WordPress, nhưng có một số cách để tắt nó.
Lưu ý: nếu bạn đang dùng plugin JetPack phổ biến, bạn không thể tắt XML-RPC, vì nó bắt buộc cho Jetpack giao tiếp với server. Ngoài ra, trước khi tắt XML-RPC, hãy đảm bảo không có plugin hoặc theme nào của bạn đang sử dụng nó.
Tắt XML-RPC
1. Tìm thư mục theme của bạn (thường ở "wp-content/themes/"), và mở file "functions.php".
2. Dán các lệnh sau vào cuối file:
// Disable use XML-RPC add_filter( 'xmlrpc_enabled', '__return_false' );
Lưu file "functions.php". Điều này sẽ tắt chức năng XML-RPC trong WordPress. Lưu ý rằng phương pháp này chỉ tắt XML-RPC, nhưng nó không ngăn chặn hacker tấn công trang vì file xml-rpc.php vẫn còn đó.
Chặn Truy Cập Vào File XML-RPC
Cách tốt nhất để ngăn hacker tấn công là chặn truy cập vào file xml-rpc.
Server Apache
Nếu trang WordPress của bạn chạy trên server Apache (nếu bạn thấy file ".htaccess" trong thư mục cài đặt WordPress, bạn có thể chắc chắn trang được host trên Apache), hãy làm theo các bước sau.
1. Đăng nhập vào CPanel. Tìm File Manager.

2. Mở file manager. Điều hướng đến thư mục "public_html" và sau đó tài liệu ".htaccess".

3. Chuột phải để chỉnh sửa file.

4. Ở cuối file dán mã sau:
# Disallow all WordPress xmlrpc.php requests to this domain <Files xmlrpc.php> order deny,allow deny from all </Files>

5. Lưu và thoát.
Server Nginx
Đối với server Nginx, dán mã sau vào file cấu hình server:
# nginx block xmlrpc.php requests location /xmlrpc.php { deny all; }
Bây giờ trang của bạn an toàn khỏi tấn công.
Kết Luận
Tấn công brute force và đánh cắp dữ liệu sẽ tiếp tục đặt ra vấn đề cho chủ trang web. Đó là trách nhiệm của bạn để đảm bảo trang an toàn. Tắt XML-RPC là một cách hiệu quả để làm điều này. Làm theo hướng dẫn trên, và bảo vệ trang web và người truy cập của bạn khỏi hacker ngay bây giờ.