Файл functions.php вы можете найти в папке темы оформления WordPress. Мы рассмотрим как можно использовать функции темы для оптимизации скорости работы и безопасности нашего сайта на WordPress.
Как мы можем использовать файл functions.php для оптимизации скорости работы сайта:
- Уменьшение числа запросов к серверу: отключение лишних файлов CSS-стилей и скриптов.
- Подключение библиотеки jQuery с CDN-серверов Google.
Какие аспекты безопасности мы исправляем в файле функций темы:
- Удаление информации о логине администратора из CSS-классов стилей комментариев и форм авторизации (в том числе при ошибках авторизации).
- Удаление информации и версиях установленных компонентов, плагинов.
- Удаление информации о версии WordPress.
Таким образом, злоумышленник не будет знать, какие версии плагинов, тем оформления и самой системы WordPress установлены на вашем сайте. А значит будет очень непросто узнать, какие уязвимости имеют компоненты сайта.
Кроме того, удаление информации о логине администратора в классах стилей и в ошибках авторизации существенно затруднит перебор логинов и паролей при попытке взломать сайт (помните, что даже если у вас установлена капча на доступ в админ. панель сайта, многие системы хорошо обходят эту защиту).
Оптимизация скорости работы сайта.
Об этом вы прочтете в тематических статьях:
- Отключение js-скриптов, подключение скриптов только на нужных страницах.
- Объединение файлов CSS-стилей, отключение лишних файлов стилей.
- Подключение библиотеки jQuery с CDN-серверов Google.
В перечисленных выше статьях детально описано как ускорить работу сайта с помощью функций темы (файла 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.
Поделитесь этой записью с друзьями, буду благодарен!
Все полезно, но есть один недостаток для чайников типа меня. Поясняю цитатой
"Итак, для удаления из комментариев CSS-класса, содержащего логин администратора, нужно добавить в конец файла functions.php следующий код:
function remove_comment_author_class ( $classes ) { "
Конец файла — понятие не конкретное, надо добавить КОНКРЕТНО КУДА, перед какими тегами или после каких? Я как-то пробовал такие рекомендации и у меня пропадал сайт, приходилось через резервную копию восстановливать пря на хостинге. Поэтому сейчас я такими рекомендациями боюсь пользоваться.
Согласен. Оптимальный порядок действий следующий:
1) Создаем резервную копию сайта или хотя бы файла functions.php. Для этого нужно иметь доступ к сайту через файловый менеджер панели управления хостингов, но лучше через ftp.
2) Конец файла — у большинства тем оформления код нужно добавлять в самый конец файла после всех тегов. Если после этого сайт не будет работать — Вы просто восстановите файл из резервной копии. Никакие данные утеряны не будут.
3) Если добавление в самый конец файла не работает, то посмотрите, нет ли в конце кода закрывающего тега ?>
Если он есть — добавьте код перед этим тегом.
Еще вариант — используйте плагин Better WP Security
Я его уже установил и Вам кучу вопросов назадавал.