Полностью отключите встроенную функцию поиска в WordPress, чтобы предотвратить сканирование базы данных вредоносными программами и её повреждение.

Полностью отключить WordPress Фронтенд оснащен встроенной функцией поиска, чтобы предотвратить перегрузку базы данных при сканировании.

База данных выходит из строя не потому, что на вашем сайте слишком много контента, а потому, что вы по-прежнему используете этот до смешного неэффективный встроенный поиск WordPress.

Многие владельцы сайтов упускают из виду один факт: фронтенд... ?s= Параметры поиска — излюбленный инструмент хакеров и сканеров.

Если кто-то будет постоянно отправлять запросы к поисковому интерфейсу, вашей базе данных придётся выполнить тысячи бессмысленных запросов.

Результат? Резко возросла загрузка процессора, резко увеличилось потребление памяти, и веб-сайт перестал работать.

Это не преувеличение, а реальный и болезненный опыт посещения бесчисленных мест.

Зачем отключать встроенный поиск WordPress?

Встроенная функция поиска WordPress по сути представляет собой полнотекстовый запрос LIKE в базе данных.

Этот запрос крайне неэффективен, особенно когда количество статей превышает 10 000; один поиск может занять более 0.5 секунды.

Если кто-то использует веб-краулер или вредоносный скрипт для отправки десятков поисковых запросов в секунду, ваша база данных будет мгновенно перегружена.

Согласно официальной документации WordPress, встроенный поиск не имеет механизмов защиты и полностью открыт для внешнего интерфейса. Это означает, что злоумышленники могут использовать эту точку входа, даже не входя в систему.

Полностью отключите встроенную функцию поиска в 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

Чтобы раскрыть еще больше скрытых трюков🔑, присоединяйтесь к нашему каналу в Telegram!

Поделитесь и поставьте лайк, если вам понравилось! Ваши репосты и лайки — наша постоянная мотивация!

 

发表 评论

Ваш адрес электронной почты не будет опубликован. 必填 项 已 用 * 标注

Каталог статей
Наверх