XML-RPC là gì? Tại sao hạn chế sử dụng XML-RPC?
Thịnh Văn Hạnh 28/11/2022 1608 Lượt xem Chia sẻ bài viết
WordPress luôn có các tính năng sẵn có cho phép bạn tương tác từ xa với trang web của mình. Đối mặt với điều đó, đôi khi bạn cần truy cập trang web WordPress của mình và máy tính của bạn sẽ không ở gần đó. Trong một thời gian dài, giải pháp là một tệp có tên XML-RPC. Nhưng trong những năm gần đây, tệp đã trở thành một thứ gây hại hơn là một giải pháp.
Dưới đây chúng tôi đi sâu vào XML-RPC thực sự là gì và tại sao nó được tạo ra. Chúng tôi cũng tổng quan về các sự cố bảo mật phổ biến mà nó gây ra và cách khắc phục chúng trên trang web WordPress của riêng bạn.
XML-RPC là gì?
Tóm Tắt Bài Viết
XML-RPC là gì?
XML-RPC sử dụng giao thức WebService (soap), sử dụng XML để mã hóa và trao đổi dữ liệu (XML gọi thủ tục từ xa) và có thể hỗ trợ các API CMS như WordPress API, Blogger API, Movable API, Pingback API, MetaWeblog API.
Vì WordPress không phải là một hệ thống khép kín hoàn toà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ụ: Nếu người dùng muốn chỉnh sửa hoặc tải một bài viết lên WordPress không phải trên máy tính mà trên điện thoại. XMLRPC.PHP sau đó kích hoạt trạng thái kết nối giữa máy tính và điện thoại, cho phép người dùng thực hiện các thay đổi.
Ứng dụng của XML-RPC là gì?
XML-RPC gồm 2 phần chính: XMLRPC server và XMLRPC client Trong WordPress, XMLRPC gồm 2 phần chính: XMLRPC server và XMLRPC client:
XMLRPC server: Là một web server có nhiệm vụ nhận dữ liệu được mã hóa. Từ ứng dụng khách XMLRPC.
XMLRPC client: Hệ thống sử dụng XML để mã hóa các tham số và gửi nội dung XML được mã hóa đến máy chủ XMLRPC.
Cách kích hoạt XML-RPC trong WordPress
Để kích hoạt XMLRPC trong WordPress, cần thực hiện 3 bước như sau:
Bước 1: Cài đặt plugin “XMLRPC Publishing Control”
Kích hoạt XML-RPC trong WordPress với ba bước đơn giản
Bước 2: Trong WordPress, vào Settings -> Authoring -> Remote Publishing with XMLRPC -> Enabled
Bước 3: Nhấp vào Save Changes để lưu các thay đổi của bạn. Vì vậy, XMLRPC đã được kích hoạt.
Tại sao không nên sử dụng XML-RPC?
Trong quá khứ, XML-RPC thường được sử dụng. Nhưng hiện tại, hệ thống này dần bộc lộ những hạn chế, cũng như sự xuất hiện của phần mềm mới, phần mềm này không còn được XML-RPC khuyến nghị sử dụng nữa. Cụ thể, có hai lý do tại sao chúng ta không nên sử dụng XML-RPC:
Khả năng bảo mật kém
Nhược điểm lớn nhất của XML-RPC là bảo mật dữ liệu kém. Do đó, tin tặc có thể dễ dàng tấn công website. Sử dụng các file xmlrpc.php, hệ thống hack có thể sử dụng một số phương pháp khác nhau để lấy mật khẩu truy cập trang web.
Ngay cả với hệ thống này, các cuộc tấn công DDoS vẫn tương đối phổ biến, khiến trang web thường xuyên bị sập. Vì vậy, khi sử dụng WordPress, nhiều người dùng thường vô hiệu hóa tính năng này để chống hack với XM-RPC.
Phần mềm khắc phục nhược điểm của XMLRPC là gì?
API WordPress hiện đang ở giai đoạn thử nghiệm. Và hệ thống API cũng có chức năng tương tự như XML-RPC, được hình thành bằng cách mã hóa trực tiếp vào lõi WordPress.
Sự xuất hiện của API dự đoán rằng nó sẽ thay thế hoàn toàn XMLRPC trong tương lai bởi tính năng bảo mật tốt và khắc phục được tất cả những hạn chế mà XMLRPC gặp phải.
Cách vô hiệu XMLRPC
Cách 1: Vô hiệu XMLRPC.PHP bằng Plugins
Bước 1: Truy cập WordPress dashboard
Bước 2: Di chuyển đến mục Plugins -› Add New Disable XMLRPC -› plugin Disable XMLRPC
Bước 3: Kích hoạt plugin Disable XMLRPC để vô hiệu hoá XMLRPC
Cách vô hiệu XMLRPC bằng Plugin
Tuy nhiên, một vấn đề có thể xảy ra khi tiến hành vô hiệu hoá XMLRPC bằng phương pháp này đó là khi xảy ra trường hợp những plugin khác cũng đang dùng một yếu tố của XMLRPC. Vì vậy, việc vô hiệu hóa plugin có thể sẽ khiến trang web của bạn ngừng hoạt động.
Để giải quyết tình trạng này, bạn có thể sử dụng phương pháp sau:
+ Cài đặt plugin Stop XMLRPC Attack để ngưng XMLRPC nhưng vẫn cho phép các plugin như Jetpack… tự động truy cập vào file xmlrpc.php.
+ Cài đặt plugin Control XMLRPC Publishing, đây là công cụ tự động kích hoạt hoặc vô hiệu hoá xmlrpc.php.
+ Cài đặt plugin iThemes Security. Bạn có thể tắt tại mục Security -> Settings -> WordPress Tweak và chọn Disable XML-RPC.
Cách 2: Sửa .htaccess
Bước 1: Truy cập tập tin .htaccess ở thư mục gốc của trang web (Trong trường hợp máy tính mua Web Hosting hoặc thuê máy chủ có cài đặt Apache)
Bước 2: Chèn đoạn code sau vào tệp tin:
# DISABLE XML RPC
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
#END
Cách 3: Trên NGINX
NGINX là một phần mềm web server mã nguồn mở, sử dụng kiến trúc hướng sự kiện (event-driven) không đồng bộ (asynchronous).
Cách vô hiệu XMLRPC bằng NGINX
Mục tiêu ban đầu để phục vụ HTTP cache nhưng sau được áp dụng vào reverse proxy, HTTP load balancer và các giao thức truyền mail như IMAP4, POP3, và SMTP.
Bước 1: Truy cập tập tin cấu hình domain trên NGINX
Bước 2: Chèn đoạn code sau vào tệp tin trên:
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}
Bước 3: Chọn service nginx restart để khởi động lại NGINX
Khi thực hiện các dịch vụ thông qua kết nối internet, bảo mật chính là vấn đề quan trọng nhất. Vì vậy, sự bảo mật kém chính là hạn chế lớn nhất của XMLRPC.
Người dùng WordPress cần lưu ý nên cài chế độ bảo mật tuyệt đối cũng như vô hiệu hóa XMLRPC khi không cần thiết để tránh tình trạng bị đánh cắp thông tin dữ liệu trên trang web.
Lời kết
Nhìn chung, XML-RPC là một giải pháp vững chắc cho một số vấn đề xảy ra do xuất bản từ xa lên trang web WordPress của bạn. Tuy nhiên, với tính năng này, một số lỗ hổng bảo mật đã gây thiệt hại khá lớn cho một số chủ sở hữu trang web WordPress. Để đảm bảo trang web của bạn vẫn an toàn, bạn nên tắt hoàn toàn xmlrpc.php đi.
Cảm ơn bạn đã đón đọc bài viết. Có thể bạn cũng quan tâm đến:
Microsoft Access Là Gì? Cách Sử Dụng Microsoft Access
Top 15 Plugin Trắc Nghiệm Cho WordPress Phổ Biến Nhất
Hướng dẫn tự viết Plugin cho WordPress đơn giản
Theo dõi BKNS thường xuyên hơn tại các nền tảng mạng xã hội:
+ Fanpage: https://www.facebook.com/bkns.vn
+ Youtube: https://www.youtube.com/c/BknsVn1
+ Pinterest: https://www.pinterest.com/bknsvn/
+ LinkedIn: https://www.linkedin.com/company/bkns-vn/