Каталог статей
Полностью отключить WordPress Фронтенд оснащен встроенной функцией поиска, чтобы предотвратить перегрузку базы данных при сканировании.
База данных выходит из строя не потому, что на вашем сайте слишком много контента, а потому, что вы по-прежнему используете этот до смешного неэффективный встроенный поиск WordPress.
Многие владельцы сайтов упускают из виду один факт: фронтенд... ?s= Параметры поиска — излюбленный инструмент хакеров и сканеров.
Если кто-то будет постоянно отправлять запросы к поисковому интерфейсу, вашей базе данных придётся выполнить тысячи бессмысленных запросов.
Результат? Резко возросла загрузка процессора, резко увеличилось потребление памяти, и веб-сайт перестал работать.
Это не преувеличение, а реальный и болезненный опыт посещения бесчисленных мест.
Зачем отключать встроенный поиск WordPress?
Встроенная функция поиска WordPress по сути представляет собой полнотекстовый запрос LIKE в базе данных.
Этот запрос крайне неэффективен, особенно когда количество статей превышает 10 000; один поиск может занять более 0.5 секунды.
Если кто-то использует веб-краулер или вредоносный скрипт для отправки десятков поисковых запросов в секунду, ваша база данных будет мгновенно перегружена.
Согласно официальной документации WordPress, встроенный поиск не имеет механизмов защиты и полностью открыт для внешнего интерфейса. Это означает, что злоумышленники могут использовать эту точку входа, даже не входя в систему.

Альтернативное решение: подключиться к более интеллектуальной поисковой системе.
Многие профессиональные веб-сайты больше не используют встроенный поиск WordPress.
Например, доступ Поиск программистов Google или Algolia Подобные сторонние поисковые сервисы не только быстры, но и предоставляют более точные результаты.
Что еще более важно, эти сервисы не навредят вашей базе данных, поскольку все запросы выполняются извне.
Итак, если ваш веб-сайтПозиционированиеЕсли это сайт с инструментами, блог или даже сайт, который уже использует внешний поиск, нет причин продолжать сохранять встроенную функцию поиска WordPress.
Полностью отключить реализацию кода поиска на внешнем интерфейсе WordPress.
Самый прямой способ — сосредоточиться на теме. functions.php Добавьте следующий код в файл:
// 禁用 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' );
Логика этого кода очень проста:
- Как только обнаруживается поисковый запрос в активном режиме, запросы к базе данных немедленно блокируются.
- Возврат на страницу 404 полностью блокирует точку входа.
- Одновременно с этим, во избежание случайных действий пользователей, была удалена форма поиска.
Преимущество этого метода заключается в том, что даже если злоумышленник отправит множество запросов... ?s=xxxЭто не вызовет никаких запросов к базе данных.
Более элегантный вариант реализации: использование Fluent Snippets.
Если вы не хотите напрямую изменять файлы темы, вы можете использовать... Fluent Snippets Плагин.
Этот плагин позволяет добавлять фрагменты кода непосредственно в фоновом режиме и видеть результаты и внесенные изменения. functions.php То же самое, но безопаснее.
После включения этой функции вы сможете легко управлять всем своим пользовательским кодом, не беспокоясь о том, что обновления темы перезапишут его.
Фактические результаты: Нагрузка на базу данных резко снизилась.
В конфигурации 2-ядерный процессор + 4 ГБ оперативной памяти На VPS, когда нативный поиск выполнял 50 запросов в секунду, загрузка ЦП базы данных подскочила до 95%.
После отключения поиска тот же запрос сразу же вернул ошибку 404, а нагрузка на базу данных практически свелась к нулю.
Именно поэтому многие эксперты по безопасности настоятельно рекомендуют немедленно отключить встроенный поиск WordPress, если он вам не нужен.
Исследователи в области безопасности прямо заявили в официальном блоге Sucuri:
«Встроенный поиск WordPress — одна из самых простых точек входа для злоумышленников; они могут создавать атаки типа «отказ в обслуживании», часто отправляя поисковые запросы».
Этого утверждения достаточно, чтобы объяснить проблему.
В заключение: безопасность — это не выбор, а обязательный процесс.
Безопасность веб-сайта — это не просто бонус, это вопрос жизни и смерти.
Отключение встроенного поиска WordPress может показаться незначительным действием, но оно может уберечь вашу базу данных от перегрузки.
В наш век информационной перегрузки истинная мудрость заключается не в добавлении новых функций, а в решительном отказе от тех, которые неэффективны или опасны.
Запомните: безопасность — это не затраты, это ценность.
Если вы всё ещё сомневаетесь, задайте себе вопрос: вы предпочтёте, чтобы ваша база данных рухнула под насмешки злоумышленников, или вы предпочтёте взять ситуацию под контроль?
Блог Хоуп Чен Вейлян ( https://www.chenweiliang.com/ Статья «Полное отключение встроенной функции поиска в WordPress для предотвращения повреждения базы данных вредоносными программами», размещенная здесь, может оказаться вам полезной.
Добро пожаловать, чтобы поделиться ссылкой на эту статью:https://www.chenweiliang.com/cwl-34192.html
