XML-RPC là gì? Cách thức tắt XML-RPC trên website WordPress

0

XML-RPC là một giao thức gọi thủ tục từ xa cho phép bất kỳ ai tương tác với trang web WordPress của bạn từ xa. Nói cách khác, đó là một cách để quản lý trang web của bạn mà không phải đăng nhập theo cách thủ công thông qua trang “wp-login.php” chuẩn. Nó được sử dụng rộng rãi bởi các plugin, nổi tiếng nhất bởi plugin Jetpack của Automattic. Tuy nhiên, những ngày này, từ “XML-RPC” đã nhận được một tên xấu. Trong hướng dẫn này, chúng tôi sẽ giải thích WordPress XML-RPC là gì và cách ngăn chặn một cuộc tấn công XML-RPC trên trang web WordPress của bạn. 

XML-RPC có được bật trên trang web WordPress của bạn không?

Một cách nhanh chóng để kiểm tra xem trang web của bạn có dễ bị tấn công hay không là truy cập URL sau từ trình duyệt:

yoursite.com/xmlrpc.php

Nếu được bật, bạn sẽ nhận được phản hồi cho biết “Máy chủ XML-RPC chỉ chấp nhận các yêu cầu POST”. Như sau:

Những nguy hiểm và lợi ích của XML-RPC

Đã có rất nhiều tranh cãi trong cộng đồng bảo mật WordPress về XML-RPC. Có hầu hết hai mối quan tâm:

  1. XML-RPC có thể được sử dụng để DDoS một trang web
  2. Nó có thể được sử dụng để liên tục thử kết hợp tên người dùng / mật khẩu

Ít nhất, những điều này  có thể. WordPress từ đó đã cắm các lỗ hổng cho phép mọi người thử hàng trăm tên người dùng và mật khẩu cùng một lúc. Kể từ phiên bản 4.4, nó đã được cải thiện khá nhiều. Bây giờ WordPress sẽ âm thầm thất bại tất cả các nỗ lực đăng nhập tiếp theo ngay sau khi một cuộc gọi XML-RPC duy nhất đã thất bại. Tuyệt quá!

Tuy nhiên, có những người vẫn còn lo lắng về sự dễ dàng bởi trong khi các cuộc gọi thủ tục từ xa như thế này có thể được thực hiện. Vì vậy, đây là một vài cách để bảo vệ trang web của bạn khỏi XML-RPC – bắt đầu từ liên lạc nhẹ nhất, đến mức nặng nhất.

Phương pháp 1: Tắt Pingbacks

Đây là một quá trình sử dụng máy chủ của bạn như là một người tham gia không mong muốn trong một cuộc tấn công chống lại một máy chủ khác. Về cơ bản, ai đó nói với trang web của bạn “Xin chào, URL này được liên kết với blog của bạn!” Và sau đó trang web của bạn phản hồi bằng “pingback” cho URL đó. Ngoại trừ việc không có xác minh rằng URL thực sự đã liên kết lại với bạn. Làm điều này với hàng trăm trang web WordPress dễ bị tấn công, và bạn có một cuộc tấn công DDoS trên tay của bạn! Cách dễ nhất để ngăn trang web của bạn không được sử dụng theo cách này là thêm mã sau vào functions.php của chủ đề của bạn:

function stop_pings ($ vectơ) {
unset ($ vectơ ['pingback.ping']);
trả về $ vectơ;
}
add_filter ('xmlrpc_methods', 'stop_pings');

Phương pháp 2: Ngăn chặn tất cả các yêu cầu xác thực thông qua XML-RPC

Phương pháp thứ hai này xác định xem bạn có muốn cho phép các phương thức XML-RPC xác thực người dùng hay không. Lấy ví dụ, xuất bản một blog qua e-mail. Trang web sẽ nhận được e-mail của bạn, xác thực bạn qua XML-RPC và sau đó xuất bản nó nếu thông tin đăng nhập phù hợp.

Rất nhiều người không thoải mái với khả năng của XML-RPC để thực hiện các cuộc gọi ngẫu nhiên như thế này. Đó là những gì đã dẫn đến hàng trăm hoặc hàng ngàn nỗ lực xác thực ngay từ đầu. Mặc dù WordPress kể từ đó đã giải quyết hình thức hack đặc biệt này, có những người khuyên bạn nên tắt nó đi.

Để làm điều đó, hãy nhập mã này vào functions.php:

add_filter ('xmlrpc_enabled', '__ return_false');

Điều quan trọng cần lưu ý rằng đây không phải là phương pháp đầu tiên. Mã này chỉ vô hiệu hóa các phương thức xác thực và để lại tất cả những người khác không bị ảnh hưởng – ví dụ như pingback.

Phương pháp 3: Vô hiệu hóa quyền truy cập vào xmlrpc.php

Đây là phương pháp cực đoan nhất hoàn toàn vô hiệu hóa tất cả chức năng XML-RPC. Nó yêu cầu bạn chỉnh sửa tệp .htaccess tại thư mục gốc của thư mục WordPress của bạn. Thêm mã sau vào đầu:

<files xmlrpc.php>
Order allow,deny
Deny from all
</files>

Lưu ý: Nếu bạn thấy cài đặt WordPress của mình không có tệp .htaccess tại thư mục gốc, chỉ cần tạo một tệp có mã mặc định sau.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^ index \ .php $ - [L]
RewriteCond% {REQUEST_FILENAME}! -f
RewriteCond% {REQUEST_FILENAME}! -d
RewriteRule. /index.php [L]
</ IfModule>
# END WordPress

Bây giờ với các quy tắc từ chối ở trên có hiệu lực, cố gắng truy cập xmlrpc.php sẽ được đáp ứng với trang sau:

Và đó là tất cả để có nó. Bạn đã vô hiệu hóa hoàn toàn XML-RPC, trên Trang web WordPress của bạn.

 

PS.  Nếu bạn thích bài đăng này, trên WordPress XML-RPC là gì và cách dừng tấn công, hãy chia sẻ nó với bạn bè của bạn trên mạng xã hội bằng cách sử dụng các nút bên dưới hoặc chỉ để lại nhận xét trong phần nhận xét. Cảm ơn.

Leave a Reply

Your email address will not be published. Required fields are marked *