Katalog artykułów
Całkowicie wyłączyć WordPress Interfejs użytkownika zawiera natywną funkcję wyszukiwania, która zapobiega przeciążeniu bazy danych podczas skanowania.
Baza danych ulega awarii nie dlatego, że na Twojej stronie jest zbyt dużo treści, ale dlatego, że wciąż używasz tej śmiesznie nieefektywnej, natywnej wyszukiwarki WordPress.
Właściciele wielu stron internetowych pomijają jeden fakt: front-end... ?s= Parametry wyszukiwania są ulubionym narzędziem hakerów i skanerów.
Jeżeli ktoś będzie nadal wysyłał zapytania do interfejsu wyszukiwania, Twoja baza danych będzie zmuszona wykonać tysiące bezsensownych zapytań.
Skutek? Gwałtownie wzrosło wykorzystanie procesora, eksplodowało wykorzystanie pamięci i strona internetowa przestała działać.
Nie jest to przesada, ale prawdziwe i bolesne doświadczenie niezliczonej liczby stron.
Dlaczego wyłączyć natywną wyszukiwarkę WordPress?
Wbudowana funkcja wyszukiwania WordPressa to w zasadzie pełnotekstowe zapytanie LIKE w bazie danych.
To zapytanie jest wyjątkowo nieefektywne, zwłaszcza gdy liczba artykułów przekracza 10 000; pojedyncze wyszukiwanie może zająć więcej niż 0.5 sekundy.
Jeśli ktoś użyje programu indeksującego sieć lub skryptu atakującego do wysyłania dziesiątek żądań wyszukiwania na sekundę, Twoja baza danych zostanie natychmiast przeciążona.
Według oficjalnej dokumentacji WordPressa, wyszukiwarka natywna nie posiada żadnych mechanizmów zabezpieczających i jest całkowicie odsłonięta dla front-endu. Oznacza to, że atakujący mogą wykorzystać ten punkt wejścia nawet bez logowania.

Rozwiązanie alternatywne: Połącz się z inteligentniejszą wyszukiwarką
Wiele profesjonalnych stron internetowych nie korzysta już z natywnej wyszukiwarki WordPressa.
Na przykład dostęp Wyszukiwarka Google Programming lub Algolia Tego typu usługi wyszukiwania stron trzecich są nie tylko szybkie, ale także dostarczają dokładniejszych wyników.
Co ważniejsze, usługi te nie spowodują ograniczenia obciążenia bazy danych, ponieważ wszystkie zapytania są wykonywane zewnętrznie.
Jeśli więc Twoja strona internetowaPozycjonowanieJeśli jest to witryna narzędziowa, witryna blogowa lub nawet witryna, która już korzysta z zewnętrznej wyszukiwarki, nie ma powodu, aby nadal korzystać z wbudowanej funkcji wyszukiwania WordPressa.
Całkowicie wyłącz implementację kodu wyszukiwania front-end WordPress
Najbardziej bezpośrednią metodą jest skupienie się na temacie. functions.php Dodaj następujący kod do pliku:
// 禁用 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' );
Logika tego kodu jest bardzo prosta:
- Po wykryciu żądania przeszukiwania na pierwszym planie zapytania do bazy danych są natychmiast blokowane.
- Powrót do strony 404 całkowicie blokuje punkt wejścia.
- Jednocześnie usunięto formularz wyszukiwania, aby zapobiec przypadkowym działaniom użytkownika.
Zaletą tej metody jest to, że nawet jeśli atakujący wyśle wiele żądań... ?s=xxxNie spowoduje to żadnych zapytań do bazy danych.
Bardziej elegancka implementacja: użycie Fluent Snippets
Jeśli nie chcesz bezpośrednio modyfikować plików motywu, możesz użyć... Płynne fragmenty kodu Podłącz.
Ta wtyczka umożliwia dodawanie fragmentów kodu bezpośrednio w tle i obserwowanie efektów i modyfikacji. functions.php To samo, ale bezpieczniejsze.
Po włączeniu tej funkcji możesz łatwo zarządzać całym swoim niestandardowym kodem, nie martwiąc się o nadpisanie go przez aktualizacje motywu.
Rzeczywiste wyniki: Obciążenie bazy danych gwałtownie spadło.
W konfiguracji 2-rdzeniowy procesor + 4 GB pamięci RAM Na serwerze VPS, gdy wyszukiwanie natywne generowało 50 żądań na sekundę, wykorzystanie procesora bazy danych wzrosło do 95%.
Po wyłączeniu wyszukiwania to samo zapytanie zwróciło bezpośrednio błąd 404, a obciążenie bazy danych spadło niemal do zera.
Dlatego wielu ekspertów ds. bezpieczeństwa gorąco zaleca natychmiastowe wyłączenie wbudowanej wyszukiwarki WordPress, jeśli jej nie potrzebujesz.
Badacze ds. bezpieczeństwa wyraźnie stwierdzili na oficjalnym blogu Sucuri:
„Natywna wyszukiwarka WordPress to jeden z najłatwiejszych do wykorzystania punktów wejścia. Atakujący mogą przeprowadzać ataki typu DoS (odmowa usługi) poprzez częste wysyłanie żądań wyszukiwania”.
To stwierdzenie wystarczy, aby wyjaśnić problem.
Podsumowując: Bezpieczeństwo nie jest wyborem, lecz obowiązkiem.
Bezpieczeństwo witryny internetowej to nie tylko bonus, to kwestia życia i śmierci.
Wyłączenie wbudowanej wyszukiwarki WordPress może wydawać się drobną czynnością, ale może uchronić Twoją bazę danych przed przeciążeniem.
W dobie nadmiaru informacji prawdziwa mądrość nie polega na dodawaniu funkcji, ale na zdecydowanym usuwaniu tych, które są nieefektywne lub niebezpieczne.
Pamiętaj: bezpieczeństwo nie jest kosztem, lecz wartością.
Jeśli nadal się wahasz, zadaj sobie pytanie: Czy wolałbyś pozwolić, aby Twoja baza danych uległa awarii pośród śmiechu atakujących, czy też wolałbyś przejąć kontrolę nad sytuacją?
Nadzieja Chen Weiliang Blog ( https://www.chenweiliang.com/ Artykuł zatytułowany „Całkowite wyłączenie natywnej funkcji wyszukiwania w WordPressie w celu zapobieżenia przesunięciu bazy danych przez złośliwe programy” udostępniony tutaj może okazać się dla Ciebie pomocny.
Zapraszamy do udostępnienia linku do tego artykułu:https://www.chenweiliang.com/cwl-34192.html
