Hướng dẫn chặn tập tin XML-RPC trên WordPress

by admincp
11 Xem
Hướng dẫn chặn tập tin XML-RPC trên WordPress

I. XML-RPC là gì? Vì sao lại cần chặn

XML-RPC là gì?

XML-RPC là một cơ chế cho phép giao tiếp giữa WordPress và các hệ thống khác. Điều này đạt được bằng cách chuẩn hóa giao tiếp, sử dụng HTTP làm cơ chế truyền tải và XML làm cơ chế mã hóa.

Bản thân XML-RPC có lịch sử lâu đời hơn WordPress. Điều này tồn tại trong phần mềm blog b2, nền tảng cho WordPress vào năm 2003. Mã đằng sau hệ thống này được lưu trữ trong một tệp có tên xmlrpc.php trong thư mục gốc của trang web. XML-RPC đã lỗi thời, nhưng vẫn còn đó.

Trong các phiên bản trước của WordPress, XML-RPC bị tắt theo mặc định. Tuy nhiên, kể từ phiên bản 3.5, nó được bật theo mặc định. Lý do chính cho điều này là cho phép ứng dụng di động WordPress giao tiếp với trang web WordPress của bạn.

Với các ứng dụng di động WordPress trước phiên bản 3.5, bạn phải bật XML-RPC trên trang web của mình để đăng nội dung từ ứng dụng … (Bạn có nhớ không?) Điều này là do ứng dụng không chạy WordPress. Thay vào đó, nó sử dụng xmlrpc.php để giao tiếp với trang WordPress.

Nhưng XML-RPC không phải là ứng dụng di động duy nhất được sử dụng. Nó cũng được sử dụng để kích hoạt giao tiếp giữa WordPress và các nền tảng blog khác, kích hoạt trackback và pinbacks và củng cố khả năng của plugin Jetpack để liên kết WordPress tự lưu trữ với WordPress.com.

Sau đó, REST API đã được tích hợp vào lõi WordPress và tệp xmlrpc.php không còn được sử dụng cho giao tiếp này nữa. Chúng tôi sử dụng API REST để giao tiếp với các ứng dụng dành cho thiết bị di động WordPress, ứng dụng khách trên máy tính để bàn, nền tảng blog bên ngoài, WordPress.com (dành cho plugin Jetpack), cũng như các hệ thống và dịch vụ khác. Sự lựa chọn hệ thống mà REST API có thể kết nối phong phú hơn nhiều so với xmlrpc.php. Nó cũng có tính linh hoạt áp đảo.

Do đó, hiện tại REST API đã thay thế XML-RPC, bạn nên tắt xmlrpc.php trên trang web của mình. Lý do chi tiết cho việc vô hiệu hóa như sau.

Vì sao lại chặnXML-RPC

Lý do chính khiến bạn cần phải vô hiệu hóa xmlrpc.php trên trang web WordPress của mình là nó có thể khiến bạn tiếp xúc với các lỗ hổng bảo mật và có thể trở thành mục tiêu tấn công.

Không có lý do gì để giữ cho XML-RPC được bật vì nó không cần giao tiếp bên ngoài WordPress nữa. Bạn nên tắt tính năng này để tăng tính bảo mật cho trang web của mình.

Nhưng nếu xmlrpc.php là một vấn đề bảo mật và thậm chí không hoạt động, tại sao nó không bị xóa hoàn toàn khỏi WordPress?

Điều này là do một trong những tính năng chính của WordPress luôn là khả năng tương thích ngược. Tất cả chúng ta đều biết rằng việc cập nhật WordPress, plugin và theme của bạn là điều quan trọng đối với bất kỳ ai biết cách quản lý trang web.

Tuy nhiên, một số chủ sở hữu trang web không muốn hoặc không thể cập nhật phiên bản WordPress của họ. Nếu người đó đang sử dụng phiên bản trước khi API REST được giới thiệu, anh ta sẽ cần quyền truy cập vào xmlrpc.php.

II. Hướng dẫn chặn XML-RPC

Nếu bạn chưa chặn tập tin này thì khi truy cập vào https://domain/xmlrpc.php sẽ hiển thị thông báo như sau.

Hướng dẫn chặn tập tin XML-RPC trên WordPress

Và bây giờ hãy cùng mình chặn nó với những cách sau nhé.

1. Chặn XML-RPC bằng .htaccess

Cách này chỉ áp dụng với máy chủ web hỗ trợ tập tin .htaccess như: Apache, OpenLiteSpeed (OLS), LiteSpeed Webserver.

Ở đây mình sử dụng cPanel. Với các panel khác thì bạn cũng làm tương tự là tìm tập tin .htaccess mở nó lên vào thêm vào đoạn mã sau.

Nếu tập tin .htaccess không có sẵn thì bạn hãy tạo mới nó nhé.

Hướng dẫn chặn tập tin XML-RPC trên WordPress

Sau đó thêm đoạn mã vào như ảnh minh hoạ sau.

RewriteRule xmlrpc - [F,L]

Hoặc bạn có thể sử dụng đoạn mã này cũng được.

<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
Hướng dẫn chặn tập tin XML-RPC trên WordPress

2. Chặn XML-RPC trên NGINX

Với máy chủNGINX thì bạn không sử dụng tập tin .htaccess được mà bạn hãy vào thẳng file cấu hình vhost và thêm ở đó.

Và bên dưới là đoạn mã để các bạn thêm vào.

location = /xmlrpc.php {
          deny all;
          access_log off;
          log_not_found off;
}
Hướng dẫn chặn tập tin XML-RPC trên WordPress

3.Chặn XML-RPC bằng Plugin

Một cách khác đơn giản hơn là sử dụng Plugin để tự động làm việc này. Bạn hãy đăng nhập vào WordPress và tìm Plugin có tên Disable XML RPC-API để cài đặt.

Hướng dẫn chặn tập tin XML-RPC trên WordPress
Hướng dẫn chặn tập tin XML-RPC trên WordPress

Với các cách chặn trên thì bạn truy cập vào sẽ nhận được thông báo 403 Forbidden như ảnh là đã thành công.

Hướng dẫn chặn tập tin XML-RPC trên WordPress

4. Kích hoạt lạiXML-RPC để sử dụng App WordPress

Trường hợp bạn muốn sử dụng tập tin này cho việc đăng nhập app WordPress hoặc một lý do nào đó. Bạn hãy làm ngược lại với các thao tác đã làm nhé.

Hoặc thêm đoạn mã sau vào file .htaccess nếu như tập tin này mặc định đã chặn ở webserver của nhà cung cấp.

<Files "xmlrpc.php">
Order Allow,Deny
allow from all
</Files>

Chúc các bạn thực hiện thành công.

Bài viết liên quan

Leave a Comment