Copyright© Mat Bao Company. All Reserved.
Sử dụng nội dung ở trang này và dịch vụ tại Mắt Bão có nghĩa là bạn đồng ý với Thỏa thuận sử dụng và Chính sách bảo mật của chúng tôi.
Công ty cổ phần Mắt Bão - Giấy phép kinh doanh số: 0302712571 cấp ngày 04/09/2002 bởi Sở Kế Hoạch và Đầu Tư Tp. Hồ Chí Minh.
Giấy phép cung cấp dịch vụ Viễn thông số 247/GP-CVT cấp ngày 08 tháng 05 năm 2018.
Hướng dẫn chặn tấn công Pingback cho website WordPress
Pingback là một dạng tấn công DDoS, kẻ tấn công sẽ lợi dụng cơ chế Pingback của website WordPress để tiến hành một cuộc tấn công từ chối dịch vụ vào nạn nhân đã được xác định từ trước.
Thông thường cơ chế Pingback được dùng khi bạn đăng một bài viết trên blog của mình, sau đó một người khác vào bình luận bài viết, kết nối ngược lại vào bài viết ban đầu của bạn. Nhờ cơ chế Pingback, bạn sẽ được thông báo đã có một người bình luận trên bài viết của mình.
Tuy nhiên khi kẻ tấn công lợi dụng cơ chế Pingback, hắn sẽ cẩn thận chọn một đường dẫn chứa thật nhiều thông tin trong nó, sau đó kẻ tấn công gửi đến cho chủ blog một kết nối thông báo, chủ blog sẽ gửi lại cho nạn nhân một kết nối để tải xuống nội dung của bài viết dẫn đến tình trạng nạn nhân sẽ hứng chịu một lượng truy cập khổng lồ.
Để ngăn chặn việc lợi dụng cơ chế Pingback, bạn cần thực hiện trong các cách sau:
- Đơn giản chỉ cần xóa hoặc đổi tên Xmlrpc.Php
Nếu bạn chắc chắn rằng bạn sẽ không yêu cầu XML-RPC thông qua trình cắm hoặc bất kỳ loại tương tác bên thứ ba nào khác với trang web của mình, bạn có thể loại bỏ hoàn toàn tệp bằng cách xóa hoặc đổi tên tệp đó. Nó nằm trong thư mục gốc của WordPress .
Tuy nhiên, đây chỉ là giải pháp tạm thời vì các bản cập nhật trong tương lai cho các tệp WordPress cốt lõi sẽ đơn giản khôi phục nó. Do bạn không bao giờ có thể biết liệu plugin hoặc hiệu suất trong tương lai trên trang web của mình có yêu cầu xmlrpc.php hay không, vì vậy không khuyến khích sử dụng cách này.
- Từ chối bằng cách sử dụng .htaccess
Vào tập tin .htaccess trong thư mục gốc của WordPress và thêm các dòng lệnh sau:
<files xmlrpc.php>
Order allow,deny
Deny from all
</files>
Việc này sẽ đơn giản chặn tất cả quyền truy cập vào xmlrpc.php. Bất cứ ai cố gắng sử dụng nó sẽ nhận được một thông báo lỗi 403 bị cấm. Lợi ích của giải pháp này so với giải pháp trước đó là các bản cập nhật WordPress tiếp theo sẽ không sửa đổi nó.
Tuy nhiên, nó vẫn sẽ phá vỡ tất cả chức năng XML-RPC trên trang web của bạn bao gồm cả Jetpack plugin.
- Vô hiệu hóa bằng tập tin Functions.Php
Điều này tương tự như giải pháp thứ hai ngoại trừ việc bạn thực hiện thay đổi trong functions.php thay vì .htaccess. Mở functions.php của themes trên website WordPress và dán phần sau đây trước khi đóng “?>” thẻ Php:
add_filter(‘xmlrpc_enabled’,’__return_false’);
nó không hiệu quả hơn giải pháp trước bởi vì nó được đưa vào tầng application chứ không phải tầng web server. Ngược lại, vì functions.php là nơi bạn đặt hầu hết mã tùy chỉnh của mình, bạn có nhiều khả năng được nhắc nhở về những gì bạn đã làm. Và điều này vẫn không giải quyết được vấn đề mất tất cả các dịch vụ XML-RPC.
- Chỉ vô hiệu hóa Pingback
Đây là giải pháp tiện lợi nhất cho vấn đề. Thay vì loại bỏ tất cả hiệu suất XML-RPC, bạn chỉ vô hiệu hóa dịch vụ pingback thứ gây ra tất cả các vấn đề về bảo mật trên website WordPress của bạn. Như trên, chèn phần sau vào tệp functions.php của bạn:
function disable_xmlrpc_ping ($methods) {
unset( $methods[‘pingback.ping’] );
return $methods;
}
add_filter( ‘xmlrpc_methods’, ‘disable_xmlrpc_ping’);
Quy tắc này loại bỏ tham số pingback từ đối số $method được truyền cho hàm tùy chỉnh của bạn. Nó sẽ duy trì trang web của bạn không thể được sử dụng như một phần của mạng botnet lớn đang thực hiện một cuộc tấn công DDoS.
Giải pháp này là giải pháp tốt nhất, bạn nên sử dụng nó vì các chức năng của XML-RPC vẫn sẽ được giữ lại mà không bị mất đi như các biện pháp trên.
- Ngoài ra bạn có thể chặn tùy theo nginx hoặc apache
Đối với Apache, thêm đoạn sau vào .htaccess:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} WordPress
RewriteRule . – [F,L]
Với Nginx:
if ($http_user_agent ~ WordPress) {
return 403;
}
Lưu ý thay thế chữ “WordPress” bằng tên của USER_AGENT tùy theo website của bạn.
Chúc bạn thành công !