Thư mục bài viết
Vô hiệu hóa hoàn toàn WordPress Giao diện người dùng tích hợp chức năng tìm kiếm để tránh tình trạng quá tải cơ sở dữ liệu do việc quét liên tục.
Cơ sở dữ liệu bị sập không phải vì trang web của bạn có quá nhiều nội dung, mà vì bạn vẫn đang sử dụng chức năng tìm kiếm mặc định của WordPress kém hiệu quả một cách đáng kinh ngạc.
Nhiều chủ sở hữu trang web thường bỏ qua một thực tế: giao diện người dùng... ?s= Các tham số tìm kiếm là một trong những yếu tố được tin tặc và phần mềm quét ưa thích.
Nếu ai đó liên tục gửi yêu cầu đến giao diện tìm kiếm, cơ sở dữ liệu của bạn sẽ buộc phải thực hiện hàng nghìn truy vấn vô nghĩa.
Kết quả là gì? Mức sử dụng CPU tăng vọt, mức sử dụng bộ nhớ tăng đột biến và trang web bị sập.
Đây không phải là lời nói phóng đại, mà là trải nghiệm thực tế và đau đớn tại vô số nơi.
Tại sao cần vô hiệu hóa chức năng tìm kiếm mặc định của WordPress?
Chức năng tìm kiếm tích hợp sẵn của WordPress về cơ bản là một truy vấn LIKE toàn văn trong cơ sở dữ liệu.
Truy vấn này cực kỳ kém hiệu quả, đặc biệt khi số lượng bài viết vượt quá 1; một lần tìm kiếm có thể mất hơn 0.5 giây.
Nếu ai đó sử dụng trình thu thập dữ liệu web hoặc tập lệnh tấn công để gửi hàng chục yêu cầu tìm kiếm mỗi giây, cơ sở dữ liệu của bạn sẽ bị quá tải ngay lập tức.
Theo tài liệu chính thức của WordPress, chức năng tìm kiếm mặc định không có cơ chế bảo vệ nào và hoàn toàn không được bảo vệ bởi giao diện người dùng. Điều này có nghĩa là kẻ tấn công có thể khai thác điểm yếu này mà không cần đăng nhập.

Giải pháp thay thế: Kết nối với công cụ tìm kiếm thông minh hơn
Nhiều trang web chuyên nghiệp hiện nay không còn phụ thuộc vào chức năng tìm kiếm tích hợp sẵn của WordPress nữa.
Ví dụ, quyền truy cập Tìm kiếm lập trình của Google hoặc là Algolia Các dịch vụ tìm kiếm của bên thứ ba như vậy không chỉ nhanh mà còn cung cấp kết quả chính xác hơn.
Quan trọng hơn, các dịch vụ này sẽ không làm quá tải cơ sở dữ liệu của bạn vì tất cả các truy vấn đều được thực hiện bên ngoài.
Vì vậy, nếu trang web của bạnĐịnh vịNếu đó là một trang web cung cấp công cụ, một trang blog, hoặc thậm chí là một trang web đã dựa vào công cụ tìm kiếm bên ngoài, thì không có lý do gì để tiếp tục giữ lại chức năng tìm kiếm tích hợp sẵn của WordPress.
Vô hiệu hóa hoàn toàn việc triển khai mã tìm kiếm giao diện người dùng của WordPress.
Cách trực tiếp nhất là tập trung vào chủ đề. functions.php Thêm đoạn mã sau vào tệp:
// 禁用 WordPress 前台搜索功能,防止被扫描拖垮数据库
function disable_wp_search( $query, $error = true ) {
if ( is_search() && !is_admin() ) {
$query->is_search = false;
$query->query_vars['s'] = false;
$query->query['s'] = false;
if ( $error == true ) {
// 直接返回 404 页面,不走任何数据库查询
$query->set_404();
status_header( 404 );
nocache_headers();
}
}
}
add_action( 'parse_query', 'disable_wp_search' );
add_filter( 'get_search_form', '__return_empty_string' );
Nguyên lý hoạt động của đoạn mã này rất đơn giản:
- Khi phát hiện yêu cầu tìm kiếm ở chế độ nền trước, các truy vấn cơ sở dữ liệu sẽ bị chặn ngay lập tức.
- Việc quay lại trang 404 sẽ chặn hoàn toàn điểm truy cập.
- Đồng thời, ô tìm kiếm cũng đã bị xóa để ngăn chặn các thao tác vô tình của người dùng.
Ưu điểm của phương pháp này là ngay cả khi kẻ tấn công thực hiện nhiều yêu cầu... ?s=xxxNó sẽ không kích hoạt bất kỳ truy vấn cơ sở dữ liệu nào.
Một cách triển khai thanh lịch hơn: sử dụng Fluent Snippets
Nếu bạn không muốn chỉnh sửa trực tiếp các tệp giao diện, bạn có thể sử dụng... Đoạn trích trôi chảy Cắm vào.
Plugin này cho phép bạn thêm các đoạn mã trực tiếp vào nền và xem các hiệu ứng cũng như thay đổi. functions.php Tương tự, nhưng an toàn hơn.
Sau khi kích hoạt, bạn có thể dễ dàng quản lý tất cả mã tùy chỉnh của mình mà không cần lo lắng về việc các bản cập nhật giao diện ghi đè lên chúng.
Kết quả thực tế: Áp lực lên cơ sở dữ liệu giảm mạnh.
Trong cấu hình của CPU 2 nhân + RAM 4GB Trên VPS, khi chức năng tìm kiếm gốc thực hiện 50 yêu cầu mỗi giây, mức sử dụng CPU của cơ sở dữ liệu tăng vọt lên 95%.
Sau khi vô hiệu hóa chức năng tìm kiếm, yêu cầu tương tự trả về lỗi 404 ngay lập tức, và tải trọng cơ sở dữ liệu gần như bằng không.
Đây là lý do tại sao nhiều chuyên gia bảo mật khuyên bạn nên tắt chức năng tìm kiếm mặc định của WordPress ngay lập tức nếu bạn không cần đến nó.
Các nhà nghiên cứu bảo mật đã nêu rõ trong blog chính thức của Sucuri:
"Chức năng tìm kiếm tích hợp sẵn của WordPress là một trong những điểm yếu dễ bị khai thác nhất; kẻ tấn công có thể tạo ra các cuộc tấn công từ chối dịch vụ bằng cách thực hiện các yêu cầu tìm kiếm thường xuyên."
Lời phát biểu này đủ để giải thích vấn đề.
Tóm lại: An toàn không phải là một lựa chọn, mà là một điều bắt buộc.
Bảo mật website không chỉ là một yếu tố bổ sung, mà là vấn đề sống còn.
Việc vô hiệu hóa chức năng tìm kiếm mặc định của WordPress có vẻ là một thao tác nhỏ, nhưng nó có thể giúp bảo vệ cơ sở dữ liệu của bạn khỏi bị quá tải.
Trong thời đại bùng nổ thông tin này, trí tuệ thực sự không nằm ở việc thêm vào các tính năng, mà ở việc loại bỏ một cách dứt khoát những tính năng không hiệu quả hoặc nguy hiểm.
Hãy nhớ: An toàn không phải là chi phí, mà là giá trị.
Nếu bạn vẫn còn đang do dự, hãy tự hỏi mình: Bạn muốn để cơ sở dữ liệu của mình sụp đổ trong tiếng cười của bọn tấn công, hay bạn muốn kiểm soát tình hình?
Hy vọng Chen Weiliang Blog ( https://www.chenweiliang.com/ Bài viết "Vô hiệu hóa hoàn toàn chức năng tìm kiếm gốc trong WordPress để ngăn chặn chương trình độc hại quét và làm chậm cơ sở dữ liệu" được chia sẻ ở đây có thể hữu ích cho bạn.
Chào mừng bạn đến chia sẻ liên kết của bài viết này:https://www.chenweiliang.com/cwl-34192.html
