Cách tắt xml-rpc WordPress không cần plugin
Mới đây một khách hàng của tôi có gửi yêu cầu hỗ trợ về việc dù anh đã đổi url đăng nhập vào website (wp-admin) rồi nhưng tại sao trong 1 plugin thống kê đăng nhập vẫn thấy khá nhiều đăng nhập thất bại và website liên tục bị sập thì tôi có check web và thấy rằng giao thức XML-RPC vẫn còn mở nên việc attacked vẫn có 1 đường để sử dụng hình thức tấn công Brute Force Attacks thông qua XML-RPC
Nếu bạn sử dụng Nginx thì có thể vô hiệu hóa bằng cách mở tệp cấu hình Nginx và chèn đoạn mã sau vào tệp:
Hiện tại xmlrpc hầu như không còn hữu ích nữa nên mình khuyến khích mọi người hãy vô hiệu hóa xmlrpc để nâng cao bảo mật cho website WordPres
Xin cảm ơn.
I. XML-RPC là gì?
XML-RPC cho WordPress được thiết kế để kích hoạt các kết nối từ xa giữa trang web của bạn và các ứng dụng bên ngoài. Điều này có nghĩa là người dùng có thể tương tác với trang web WordPress của họ thông qua các nền tảng viết blog hoặc ứng dụng điện thoại khác nhau. XML-RPC hữu ích trong những ngày đầu của Internet, khi một người muốn chỉnh sửa nội dung ngoại tuyến, sau đó kết nối với blog WordPress của họ sau đó để xuất bản nội dung đó. Tuy nhiên, với những tiến bộ trong công nghệ, Đa số người dùng không sử dụng XML-RPC nên XML-RPC tiềm ẩn nhiều rủi ro bảo mật mà bạn nên vô hiệu hóa chúng đi để website được bảo mật hơn.II. XML-RPC được sử dụng như thế nào trong WordPress?
Theo mặc định, WordPress tự động kích hoạt XML-RPC ! Nó tạo một API cho XML-RPC để cho phép tương tác (nhận, đọc, chỉnh sửa, đăng, v.v.) các bài đăng, nhận xét, phân loại … Bạn có thể tìm thấy ứng dụng của XML-RPC trong WordPress ở đâu?- Pingback
- JSON API
- iPhone/Android app
- Remote posting by Microsoft Word for example.
- Your own apps, perhaps!
III. Vô hiệu hóa XML-RPC trong WordPress
Khách hàng của tôi có gửi yêu cầu hỗ trợ về việc dù anh đã đổi url đăng nhập vào website (wp-admin) rồi nhưng tại sao trong 1 plugin thống kê đăng nhập vẫn thấy khá nhiều đăng nhập thất bại và website liên tục bị sập thì tôi có check web và thấy rằng giao thức XML-RPC vẫn còn mở nên việc attacked vẫn có 1 đường để sử dụng hình thức tấn công Brute Force Attacks thông qua XML-RPC, ngoài ra XML-RPC còn hay bị khai thác DDoS nữa. Brute Force Attacks: Attacked có thể sử dụng xml-rpc để kiểm tra hàng trăm kết hợp tên người dùng và mật khẩu cho đến khi có thể truy cập vào trang web của bạn. Điều này xảy ra vì xml-rpc không giới hạn số lần đăng nhập như khi bạn đăng nhập vào WordPress bình thường. Đây là 1 tính năng cũ và hiện tại nó là lỗ hỏng để hacker có thể khai thác hình thức tấn công Brute Force Attacks DDoS: Attacked có thể sử dụng xml-rpc để pingback hàng nghìn IP. Điều này cho phép họ gửi một lượng lớn dữ liệu và lưu lượng truy cập có thể gây ra tình trạng quá tải cho máy chủ của bạn1. Chặn xmlrpc bằng .htaccess
Nếu bạn sử dụng máy chủ là Apache hoặc Litespeed bạn có thể vô hiệu hóa XML-RPC bằng cách thêm đoạn code phía dưới vào file.htaccess
là được.
1 2 3 4 5 |
# Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all </Files> |
1 2 3 4 5 |
server { location = /xmlrpc.php { deny all; } } |
2. Xóa xmlrpc.php bằng code functions.php
Ngoài cách vô hiệu hóa XML-RPC ở trên bạn cũng có thể sử dụng code sau để chèn vào filefunctions.php
trong theme của bạn
1 2 3 4 |
/* Disable xmlrpc_methods *===============================================================*/ add_filter( 'xmlrpc_enabled', '__return_false' ); add_filter( 'pings_open', '__return_false' ); |