post
Бесплатная школа YouTube 3.0

Файл functions.php вы можете найти в папке темы оформления WordPress. Мы рассмотрим как можно использовать функции темы для оптимизации скорости работы и безопасности нашего сайта на WordPress.

Как мы можем использовать файл functions.php для оптимизации скорости работы сайта:

  • Уменьшение числа запросов к серверу: отключение лишних файлов CSS-стилей и скриптов.
  • Подключение библиотеки jQuery с CDN-серверов Google.

Какие аспекты безопасности мы исправляем в файле функций темы:

  • Удаление информации о логине администратора из CSS-классов стилей комментариев и форм авторизации (в том числе при ошибках авторизации).
  • Удаление информации и версиях установленных компонентов, плагинов.
  • Удаление информации о версии WordPress.

Таким образом, злоумышленник не будет знать, какие версии плагинов, тем оформления и самой системы WordPress установлены на вашем сайте. А значит будет очень непросто узнать, какие уязвимости имеют компоненты сайта.

Кроме того, удаление информации о логине администратора в классах стилей и в ошибках авторизации существенно затруднит перебор логинов и паролей при попытке взломать сайт (помните, что даже если у вас установлена капча на доступ в админ. панель сайта, многие системы хорошо обходят эту защиту).

Оптимизация скорости работы сайта.

Об этом вы прочтете в тематических статьях:

В перечисленных выше статьях детально описано как ускорить работу сайта с помощью функций темы (файла functions,php).

Настройки безопасности в файле functions.php.

1) Удаление информации о логине администратора из CSS-классов комментариев.

Известно, что в ряде тем логин администратора прописывается в CSS-классе при выводе комментариев на сайте. Это делает логин администратора доступным для всех посетителей сайта и облегчает «брутфорс» вашего сайта, т.е. взлом сайта путем подбора логина и пароля.

Примечание: никогда не оставляйте доступным для всех имя пользователя, имеющего административные права. В административной панели WordPress зайдите в пункт «Пользователи», далее откройте вашего пользователя с правами администратора, обязательно укажите имя, которое будет отличаться от ника (логина). И укажите опцию «Отображать как <Имя>».

Итак, для удаления из комментариев CSS-класса, содержащего логин администратора, нужно добавить в конец файла functions.php следующий код:

function remove_comment_author_class( $classes ) {
    foreach( $classes as $key => $class ) {
        if(strstr($class, "comment-author-")) {
            unset( $classes[$key] );
        }
    }
    return $classes;
}
add_filter( 'comment_class' , 'remove_comment_author_class' );

2) Удаление информации об ошибке авторизации, при которой можно распознать логин администратора (ошибка указывает, неверно введен логин или неверно введен пароль):

Данная ошибка указывает, что именно введено неверно: логин или пароль пользователя.

Для устранения этой ошибки безопасности нужно добавить следующий код в файл functions.php:

add_filter('login_errors',create_function('$a', "return null;"));

3) Удаление информации о версиях установленных плагинов и о версии WordPress.

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

Итак, для удаления информации о компонентах нужно добавить следующий код:

function remove_version_data( $src ){
$parts = explode( '?ver', $src );
return $parts[0];
}
add_filter( 'script_loader_src', 'remove_version_data', 15, 1 );
add_filter( 'style_loader_src', 'remove_version_data', 15, 1 );

Примечание: проделанные операции конечно сделают вас сайт надежнее и защищеннее, однако полностью не исключит возможности взлома.

Обязательно настройке оптимальным образом файл серверных инструкций .htaccess.

Бесплатная школа YouTube 3.0

Поделитесь этой записью с друзьями, буду благодарен!

4 комментариев “WordPress — файл functions.php. Оптимально и безопасно настраиваем функции темы

  1. Все полезно, но есть один недостаток для чайников типа меня. Поясняю цитатой

    "Итак, для удаления из комментариев CSS-класса, содержащего логин администратора, нужно добавить в конец файла functions.php следующий код:

    function remove_comment_author_class ( $classes ) { "

    Конец файла — понятие не конкретное, надо добавить КОНКРЕТНО КУДА, перед какими тегами или после каких? Я как-то пробовал такие рекомендации и у меня пропадал сайт, приходилось через резервную копию восстановливать пря на хостинге. Поэтому сейчас я такими рекомендациями боюсь пользоваться.

  2. Согласен. Оптимальный порядок действий следующий:

    1) Создаем резервную копию сайта или хотя бы файла functions.php. Для этого нужно иметь доступ к сайту через файловый менеджер панели управления хостингов, но лучше через ftp.

    2) Конец файла — у большинства тем оформления код нужно добавлять в самый конец файла после всех тегов. Если после этого сайт не будет работать — Вы просто восстановите файл из резервной копии. Никакие данные утеряны не будут.

    3) Если добавление в самый конец файла не работает, то посмотрите, нет ли в конце кода закрывающего тега ?>

    Если он есть — добавьте код перед этим тегом.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *