Computer >> Máy Tính >  >> Lập trình >> HTML

Làm cách nào để tắt XML-RPC trong WordPress?

Bạn đang tìm một cách nhanh chóng để vô hiệu hóa WordPress XML-RPC? Trước khi làm, hãy xem xét lý do tại sao bạn lại làm như vậy.

Bạn cũng có thể có rất nhiều câu hỏi khác:

  • xmlrpc.php là gì?
  • Rủi ro bảo mật lớn đến mức nào?
  • Việc tắt xmlrpc.php có tự động giải quyết mối đe dọa không?

Trong bài viết này, chúng tôi sẽ trả lời tất cả những câu hỏi này và hơn thế nữa.

TL; DR: Vô hiệu hóa XML-RPC trên WordPress không phải là một giải pháp thực sự. Không sớm thì muộn, các tin tặc sẽ tìm thấy một số lỗ hổng khác để khai thác. Chúng tôi khuyên bạn nên cài đặt một tường lửa WordPress mạnh mẽ để chặn bot và các IP độc hại.

Trang web của bạn có bị tấn công vì XML-RPC không?

Ồ không.

Điều đang xảy ra là tin tặc đang cố gắng truy cập vào trang web của bạn, bằng cách thử kết hợp tên người dùng và mật khẩu. Nhưng đừng lo lắng, trang web của bạn vẫn chưa bị tấn công.

Chúng tôi đã thấy hầu hết mọi trang web trải nghiệm điều này. Nếu bạn đã sử dụng mật khẩu mạnh, khả năng trang web của bạn bị tấn công vì điều này là rất ít. Trong số hơn 10.000 trang web bị tấn công mà chúng tôi đã thấy, ít hơn 5% đã bị tấn công vì các cuộc tấn công như vậy.

Tuy nhiên, những kiểu tấn công này — được gọi là tấn công vũ phu — sử dụng hết tài nguyên máy chủ. Ngay cả khi bạn đã bảo vệ các trang đăng nhập và quản trị của mình, các cuộc tấn công này sẽ bỏ qua hoàn toàn các trang đó, do đó khiến máy chủ bị quá tải.

Để ngăn chặn điều này, điều quan trọng là phải cài đặt một bức tường lửa tốt.

XML-RPC là gì?

XML-RPC là một tính năng của WordPress cho phép truyền dữ liệu giữa WordPress và các hệ thống khác. Nó hiện đã được thay thế phần lớn bằng REST API, nhưng vẫn được đưa vào các bản cài đặt để tương thích ngược.

XML-RPC cho phép các ứng dụng của bên thứ ba xuất bản nội dung trên trang web WordPress của bạn. Ví dụ:nếu bạn sử dụng ứng dụng di động WordPress để xuất bản một bài đăng từ điện thoại thông minh của mình, XML-RPC cho phép bạn làm điều đó.

Nhưng đó không phải là tất cả những gì nó có thể làm. WordPress cũng sử dụng nó để giao tiếp với các nền tảng blog khác. Nó cho phép theo dõi và pingback.

Làm cách nào để tắt XML-RPC trong WordPress?
Tín dụng hình ảnh:WPExplorer

Nó thậm chí còn cung cấp phiên bản cũ hơn của plugin Jetpack.

WordPress thường sử dụng nó để kết nối với ứng dụng WordPress dành cho thiết bị di động. Nếu bạn đã từng sử dụng ứng dụng WordPress dành cho thiết bị di động, bạn sẽ nhớ phải kích hoạt XML-RPC.

Làm cách nào để tắt XML-RPC trong WordPress?
Tín dụng hình ảnh:WordPress

Điều kỳ lạ nhất về toàn bộ thỏa thuận này là WordPress thậm chí không sử dụng XML-RPC nữa. Kể từ khi phát hành API REST của riêng mình, WordPress đã ngừng sử dụng cơ sở mã cũ.

Lý do duy nhất khiến cài đặt WordPress của bạn vẫn có tệp xmlrpc.php là vì khả năng tương thích ngược. Nói cách đơn giản hơn, nó chỉ dành cho các trang web vẫn đang chạy trên phiên bản RẤT cũ của WordPress!

Nếu đây là bạn, chúng tôi thực sự khuyên bạn nên sao lưu trang web của mình ngay lập tức và cập nhật các tệp, chủ đề và plugin cốt lõi của WordPress. Việc sử dụng các phiên bản cũ hơn của WordPress có thể gây ra rủi ro bảo mật lớn hơn nhiều so với việc tin tặc cố gắng kết nối với xmlrpc.php.

Điểm mấu chốt là bạn có thể tắt XML-RPC trên WordPress một cách an toàn nếu phiên bản WordPress của bạn cao hơn 4.7. Nó thậm chí không ảnh hưởng đến Jetpack trong trường hợp bạn đang sử dụng plugin. Tuy nhiên, bản thân việc tắt XML-RPC là một hành động hoàn toàn an toàn, nó không giúp bảo vệ trang web của bạn khỏi tin tặc.

Tại sao tin tặc tấn công XML-RPC?

Nếu bạn đã từng sử dụng ứng dụng WordPress dành cho thiết bị di động, bạn sẽ nhớ rằng ứng dụng này yêu cầu bạn đăng nhập vào trang web của mình trước khi bạn thực sự có thể thực hiện các thay đổi. Bây giờ, đăng nhập này xảy ra bằng cách gửi thông tin đăng nhập của bạn tới tập lệnh xmlrpc.php, sau đó tập lệnh này sẽ xác thực và xác thực thông tin đăng nhập truy cập của bạn.

Về cơ bản, tin tặc cố gắng làm điều tương tự:đăng nhập vào trang web của bạn bằng cách gửi thông tin xác thực truy cập tập lệnh xmlrpc.php. Rủi ro lớn nhất là nếu mật khẩu của bạn yếu và có thể dễ dàng bị đoán ra. Đó là khi XML-RPC trở thành một vấn đề bảo mật.

Nếu không, bạn đang xem xét khả năng máy chủ bị quá tải — điều này vẫn chưa phải là tuyệt vời, nhưng bạn có thể dễ dàng giải quyết bằng tường lửa.

Phiên bản WordPress 4.7 trở lên sử dụng API REST để kết nối với các ứng dụng bên ngoài sử dụng một hình thức xác thực được gọi là mã thông báo OAuth. OAuth là một cách rất an toàn để kết nối với một ứng dụng bên ngoài. Phương pháp sử dụng trực tiếp tên người dùng và mật khẩu của XML-RPC không phải là một phương pháp an toàn.

Nếu có đủ thời gian, tin tặc hoặc bot có thể gửi các biến thể của tên người dùng và mật khẩu để kết nối với xmlrpc.php cho đến khi họ đoán đúng.

Làm cách nào để tắt XML-RPC trong WordPress?
Tín dụng hình ảnh:protector47

Đây được gọi là một cuộc tấn công vũ phu.

Một vấn đề bảo mật lớn khác với XML-RPC là nó được sử dụng cho pingback, đây là những cảnh báo trên WordPress khi ai đó liên kết đến nội dung của bạn. Mối đe dọa là tin tặc có thể gửi một làn sóng pingback đến trang web của bạn.

Làm cách nào để tắt XML-RPC trong WordPress?
Tín dụng hình ảnh:protector47

Loại tấn công này, được gọi là tấn công DDoS, có thể làm quá tải máy chủ của bạn, làm cạn kiệt tài nguyên máy chủ và khiến trang web của bạn bị máy chủ lưu trữ web của bạn tạm ngưng!

Một lần nữa, API REST cũng thay thế chức năng này. Vì vậy, nếu bạn thích pingback, bạn vẫn có thể tắt XML-RPC trên WordPress một cách an toàn.

Nếu bạn lo ngại rằng có lẽ bạn là một phần của 5% và trang web của bạn có thể bị tấn công, hãy sử dụng trình quét phần mềm độc hại miễn phí của chúng tôi ngay bây giờ để loại bỏ khả năng đó.

Bạn có nên tắt XML-RPC không?

Chúng tôi khuyên bạn không nên tắt XML-RPC.

Lý do?

Đơn giản - việc vô hiệu hóa tệp PHP không có lợi cho bạn. Vô hiệu hóa XML-RPC không loại bỏ được tin tặc và bot. Nó chỉ đơn giản là chuyển hướng sự chú ý của họ đến wp-login.php để thực hiện các cuộc tấn công brute force.

Thứ hai, plugin sẽ làm chậm trang web của bạn, vì nó cần tải để chặn yêu cầu.

Điều quan trọng hơn là bảo vệ trang web của bạn và nếu bạn đã đọc cho đến nay, bạn có thể đoán chúng tôi khuyên bạn nên cài đặt tường lửa. Vâng, đó là hạt dẻ già.

Làm cách nào để tắt XML-RPC trên WordPress?

Như với tất cả mọi thứ trên WordPress, bạn có thể vô hiệu hóa WordPress XML-RPC theo hai cách:

  • Sử dụng một plugin
  • Không có plugin

Trong hầu hết các trường hợp, chúng tôi thường khuyên bạn nên sử dụng một plugin để thực hiện hầu hết mọi thứ trên WordPress. Thay đổi mã theo cách thủ công trên phần phụ trợ WordPress có thể dẫn đến thảm họa. Đây là một trường hợp hiếm hoi mà chúng tôi không đề xuất cả hai phương pháp, nhưng chúng tôi vẫn sẽ chỉ cho bạn cách thực hiện cả hai trong mọi trường hợp.

Hãy nhớ tiến hành một cách thận trọng và sao lưu trang web của bạn trước khi làm bất cứ điều gì.

Bước 1:Kiểm tra xem XML-RPC có được bật trên trang web của bạn không

Mặc dù cài đặt WordPress của bạn đi kèm với xmlrpc.php, nhưng điều đó không có nghĩa là nó vẫn được bật. Trước khi tiếp tục và cố gắng tắt XML-RPC, ít nhất bạn nên kiểm tra xem nó có còn hoạt động trên trang web của bạn không.

Sử dụng Dịch vụ xác thực XML-RPC của WordPress. Ứng dụng này sẽ kiểm tra trang web của bạn và cho bạn biết nếu xmlrpc.php được bật.

Làm cách nào để tắt XML-RPC trong WordPress?

Nếu bạn cũng làm như vậy với MalCare, bạn sẽ thấy thông báo lỗi 403 vì chúng tôi có tường lửa.

Làm cách nào để tắt XML-RPC trong WordPress?

Bước 2:Tắt XML-RPC trên trang web của bạn

Cuối cùng đã đến lúc tắt XML-RPC trên WordPress của bạn một lần và mãi mãi.

Chúng tôi sẽ hướng dẫn bạn cách thực hiện việc này bằng hai phương pháp. Mặc dù chúng tôi không khuyên bạn nên vô hiệu hóa tệp này, nhưng chúng tôi vẫn khuyến khích bạn sử dụng plugin nếu bạn chưa thực hiện được.

Tùy chọn A:Sử dụng plugin

Có rất nhiều plugin mà bạn có thể sử dụng để tắt XML-RPC trên trang web của mình. Chúng tôi khuyên bạn nên sử dụng plugin REST XML-RPC Data Checker.

Hãy nhớ rằng trang web của bạn sẽ chậm lại vì plugin sẽ cần tải để chặn yêu cầu. Ngoài ra, thay vào đó, tin tặc sẽ chuyển sang tấn công tệp wp-login.php.

Vì vậy, điều này sẽ hoàn toàn không đạt được gì về mặt bảo mật. Nếu bạn muốn được bảo vệ thực sự, chúng tôi khuyên bạn nên cài đặt plugin tường lửa nâng cao của MalCare.

Sau khi bạn cài đặt plugin, hãy chuyển đến Cài đặt> REST Trình kiểm tra dữ liệu XML-RPC .

Sau đó nhấp vào tab XML-RPC:

Làm cách nào để tắt XML-RPC trong WordPress?

Bạn có thể vô hiệu hóa giao diện API, khả năng định dạng bài đăng WordPress, pingback và trackback. Như một lợi thế bổ sung, bạn cũng có thể giới thiệu một người dùng đáng tin cậy vẫn có thể sử dụng XML-RPC hoặc danh sách các địa chỉ IP đáng tin cậy sẽ không bị chặn.

Nhanh chóng và hiệu quả! Tuy nhiên, chúng tôi khuyên bạn không nên loay hoay với tab REST. Chỉ cần để mọi thứ ở chế độ mặc định ở đó.

Tùy chọn B:Không có plugin

Đây là lựa chọn tồi tệ nhất có thể xảy ra trong cuốn sách. Chúng tôi thực sự khuyên bạn nên bỏ qua phần tiếp theo để thay vào đó chúng tôi dạy bạn cách thực sự bảo vệ trước các cuộc tấn công XML-RPC.

Nhưng nếu bạn chưa thực hiện được việc tắt XML-RPC theo cách thủ công, chúng tôi thực sự khuyên bạn nên sao lưu toàn bộ trang web của mình trước.

Tùy thuộc vào loại máy chủ mà trang web của bạn đang sử dụng, bạn có thể thực hiện theo một trong hai phương pháp sau:

Tắt WordPress XML-RPC bằng .htaccess

Dán đoạn mã này vào tệp .htaccess của bạn:

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
</Files>

Trong dòng thứ 5 ‘allow from xxx.xxx.xxx.xxx’, hãy thay thế x’s bằng địa chỉ IP của bạn, nếu bạn muốn giữ lại XML-RPC từ một IP cụ thể. Nếu không, bạn chỉ cần xóa dòng này.

Nếu trang web của bạn được lưu trữ bằng Apache, bạn sẽ có thể kết nối với máy chủ của mình bằng cPanel hoặc FTP. Trong cả hai trường hợp, bạn sẽ có thể truy cập tệp .htaccess của mình.

Tắt WordPress XML-RPC bằng .config

Đối với các trang web được lưu trữ trên Nginx, bạn có thể thêm mã sau vào tệp Nginx.config:

location ~* ^/xmlrpc.php$ {
return 403;
}

Hoặc, bạn có thể chỉ cần yêu cầu máy chủ web vô hiệu hóa XML-RPC cho bạn.

Vô hiệu hóa WordPress XML-RPC bằng bộ lọc

Ngoài ra, bạn có thể thêm bộ lọc vào bất kỳ plugin nào:

add_filter('xmlrpc_enabled', '__return_false');

Bạn có thể làm điều tương tự từ tệp chức năng chủ đề nhưng cách viết plugin tốt hơn nhiều. Ngoài ra, bạn có thể sử dụng phương pháp này bất kể bạn có loại máy chủ nào.

Một lần nữa, không có tùy chọn nào trong số này thực sự hữu ích và thực hiện các thay đổi thủ công không bao giờ là một ý tưởng hay. Vì vậy, nếu bạn phải làm điều đó, vui lòng chuẩn bị sẵn một bản sao lưu WordPress đề phòng mọi thứ đi xuống phía nam.

Làm cách nào để ngăn chặn các cuộc tấn công XML-RPC?

Đây là phần quan trọng nhất trong bài viết này và nó là một phần khá lớn. Vì vậy, chúng tôi đã quyết định chia việc này thành một số bước có thể hành động mà bạn có thể thực hiện để ngăn chặn các cuộc tấn công XML-RPC trên trang web của mình.

Bước 1:Kiểm tra xem trang web của bạn đã bị tấn công chưa

Rất có thể, trang web của bạn chưa bị tấn công.

Nhưng bạn vẫn cần xác nhận điều này để đề phòng. Nếu trang web của bạn thực sự bị tấn công, trước tiên bạn cần phải xóa phần mềm độc hại khỏi nó, nếu không, việc vô hiệu hóa XML-RPC sẽ không có ý nghĩa gì.

Cách đơn giản nhất để xác nhận xem trang web của bạn có bị tấn công hay không là sử dụng trình quét phần mềm độc hại MIỄN PHÍ của MalCare. Máy quét của MalCare mất rất ít thời gian để thiết lập và nó có thể phát hiện cả phần mềm độc hại không xác định trên trang web chỉ trong vài giây.

Nếu bạn thấy cảnh báo trang web bị tấn công trên MalCare, tất cả những gì bạn phải làm là nhấn vào nút 'Autoclean'.

Làm cách nào để tắt XML-RPC trong WordPress?

MalCare xử lý toàn bộ quá trình xóa phần mềm độc hại trong 60 giây.

Bước 2:Cài đặt Tường lửa WordPress

Đây là cách phù hợp để xử lý các lỗ hổng XML-RPC. Sử dụng tường lửa WordPress được trang bị để chặn các bot đang cố gắng kết nối với xmlrpc.php.

Vô hiệu hóa tệp không hoạt động. Tin tặc chỉ cần bắt đầu cố gắng hack wp-login.php tiếp theo.

Vấn đề duy nhất là tường lửa thường có hiệu lực quá muộn. Mỗi khi tin tặc cố gắng xâm nhập bằng cách kết nối với xmlrpc.php hoặc wp-login.php, toàn bộ trang web WordPress sẽ được tải cùng với nó.

Đó chính xác là lý do tại sao chúng tôi khuyên bạn nên sử dụng tường lửa nâng cao của MalCare:

  • Đẩy lùi bot và tin tặc trước khi trang web của bạn tải
  • Không làm chậm tốc độ tải trang web của bạn như Cloudflare
  • Liên tục cập nhật cơ sở dữ liệu về các IP độc hại bằng cách tìm hiểu từ mạng hơn 250.000 trang web mà nó bảo vệ

Nếu trang web của bạn được bảo vệ bởi MalCare, tất cả các bot và tin tặc sẽ nhận được khi họ cố gắng kết nối với XML-RPC hoặc WP-Login là lỗi 403. Một lỗi như thế này có thể nhanh chóng ngăn cản tin tặc tiến xa hơn.

Tại sao mọi người khuyên bạn nên tắt XML-RPC?

Nhiều lý do. Chúng ta hãy xem xét từng thứ, để bạn hiểu tại sao ai đó (vâng, blog quản lý WordPress cũng rất quan trọng) đề xuất quá trình hành động này. (Ngay cả khi nó là một phần của giải pháp Band-Aid.)

Một trong những lý do lớn nhất khiến nhiều độc giả của chúng tôi (như chính bạn) muốn tắt XML-RPC trên trang web WordPress của họ là họ đã gặp sự cố tài nguyên máy chủ . Khi xem nhật ký, bạn có thể gặp rất nhiều lần truy cập vào tệp xmlrpc.php.

Có thể bạn sử dụng Jetpack và gặp phải lỗi cấu hình khi cài đặt Jetpack . Sau đó, bạn tìm kiếm tệp nghe có vẻ kỳ lạ này và đọc một loạt nội dung về cách nó là một thứ có lỗ hổng.

Làm cách nào để tắt XML-RPC trong WordPress?

Hoặc bạn đã sử dụng một máy quét, nó đã đưa ra một cảnh báo như sau:

Làm cách nào để tắt XML-RPC trong WordPress?
Tín dụng hình ảnh:Wordfence

Đó là ảnh chụp màn hình của Nhật ký lưu lượng Wordfence .

Một plugin bảo mật cho bạn thấy rằng các bot đang cố gắng xâm nhập vào trang web của bạn thông qua XML-RPC trên WordPress. Vì vậy, bản năng tự nhiên của bạn là tắt hoàn toàn tùy chọn này.

Điều bạn không nên làm và tại sao?

Địa chỉ IP danh sách đen

Bạn có thể nghĩ rằng chặn IP theo cách thủ công là một cách tốt để chặn tin tặc. Trên thực tế, đây là điều mà rất nhiều “chuyên gia” bảo mật sẽ chứng thực. Nhưng nó không hoạt động. Nếu bạn chặn một địa chỉ IP, một bot brute force sẽ bắt đầu sử dụng một địa chỉ IP khác để tấn công trang web của bạn.

Xóa XML-RPC

Thậm chí đừng nghĩ đến việc xóa tệp xmlrpc.php khỏi cài đặt WordPress của bạn. Nó sẽ phá hủy hoàn toàn trang web của bạn và ngay cả khi không làm vậy, tệp sẽ chỉ bật lại ngay vào lần tiếp theo bạn cập nhật WordPress.

Tiếp theo là gì?

Cải thiện bảo mật WordPress không phải là một và đã được thực hiện. Có, cài đặt tường lửa là một cách tuyệt vời để bắt đầu, nhưng chúng tôi khuyên bạn nên thực hiện kiểm tra bảo mật WordPress đầy đủ trên trang web của mình để tìm ra những gì bạn có thể cải thiện.

Nếu bạn đã cài đặt MalCare, bạn sẽ tìm thấy rất nhiều đề xuất trong bảng điều khiển trực quan. Chỉ cần tiếp tục quét bảo mật và làm theo lời nhắc.

Khi bạn sẽ nhanh chóng tìm ra, tăng cường bảo mật trang web WordPress của bạn là một ý tưởng hay. Một lần nữa, bạn có thể chỉ cần làm theo các hướng dẫn để hoàn thành công việc đó trong một vài cú nhấp chuột đơn giản.

Một khía cạnh quan trọng khác của bảo mật là luôn biết.

Nếu có một lỗ hổng WordPress mới, bạn cần biết về nó và thực hiện các biện pháp xử lý trước khi nó cũng ảnh hưởng đến trang web của bạn.

Câu hỏi thường gặp

XML-RPC là gì?

XML-RPC là viết tắt của XML Remote Call Procedure. Đây là một giao thức được các hệ thống viết blog lỗi thời sử dụng để kết nối với blog bằng kết nối HTTP với mã hóa XML. Nói một cách đơn giản, đó là một giao thức cho phép người dùng kết nối từ xa với một nền tảng blog như WordPress.

XML-RPC được sử dụng để làm gì?

XML-RPC là một cách để kết nối từ xa với WordPress từ các ứng dụng của bên thứ ba, chẳng hạn như ứng dụng WordPress dành cho thiết bị di động. Nó cũng gửi cho bạn thông báo mỗi khi ai đó liên kết đến bài đăng của bạn thông qua trackback và pingback.

Làm cách nào để tắt XML-RPC?

Bạn có thể tắt XML-RPC bằng cách sử dụng một plugin như plugin REST XML-RPC Data Checker. Tuy nhiên, việc vô hiệu hóa XML-RPC không ngăn được tin tặc cố gắng xâm nhập vào trang web WordPress của bạn. Để ngăn chặn các cuộc tấn công, bạn nên cài đặt plugin tường lửa nâng cao của MalCare.

Tôi có CAPTCHA hoặc 2FA. Họ vẫn có thể bẻ khóa mật khẩu bằng XML-RPC chứ?

Các plugin Captcha và Xác thực Hai yếu tố (2FA) nhằm mục đích bảo mật bổ sung. Chúng không cung cấp khả năng bảo vệ thực sự chống lại các cuộc tấn công XML-RPC.

Hầu hết các plugin captcha và WordPress 2FA sẽ chỉ bảo mật trang đăng nhập WordPress chứ không phải tập lệnh XML-RPC. Kiểm tra kỹ plugin bảo mật của bạn để đảm bảo rằng nó ngăn chặn đăng nhập thông qua XML-RPC.

Tôi có thể đưa vào danh sách đen các địa chỉ IP độc hại không?

Đây dường như là một giải pháp hiển nhiên - chỉ cần chặn địa chỉ IP của tin tặc và bạn sẽ được an toàn.

Đừng đùa giỡn với ý tưởng này. Nó giống như chơi trò đánh lừa với tin tặc. Họ sẽ tiếp tục thay đổi địa chỉ IP và tấn công trang web của bạn bằng địa chỉ IP khác. Không có kết thúc cho điều này.

Chỉ những thứ như tường lửa của MalCare mới có thể giúp bạn. Nó đi kèm với tính năng Bảo vệ Bot sẽ tự động chặn các IP độc hại từ quốc gia hoặc thiết bị. Tường lửa nâng cao học hỏi từ hơn 250.000 trang web trên mạng của nó và nhận ra các bot và IP độc hại trước khi chúng có thể tấn công. Tất cả điều này mà không làm chậm trang web của bạn.

Tuy nhiên, nếu bạn vẫn muốn tiếp tục chặn từng IP độc hại vĩnh viễn, thì bài viết này sẽ giúp bạn.

Tôi không thể xóa tệp XML-RPC được không? WordPress không sử dụng nó nữa.

Đừng làm điều này. Ngay cả khi tệp XML-RPC bị thiếu, trang web của bạn sẽ tiếp tục bị quá tải bởi các bot cố gắng kết nối với nó. Rủi ro lớn hơn là việc xóa hoàn toàn một tệp lõi WordPress có thể phá hủy hoàn toàn trang web của bạn.

Điều tồi tệ nhất là xmlrpc.php sẽ chỉ được cài đặt lại trong bản cập nhật WordPress tiếp theo, điều này làm mất đi mục đích xóa tệp.