Время сессии пользователя в WordPress по умолчанию составляет 48 часов. Это значит, что после успешного входа пользователь останется авторизованным в течение двух суток, если не выйдет из аккаунта вручную. Такой длительный период сессии может создавать риски для безопасности сайта, особенно если доступ к устройству имеют посторонние лица или используется публичный компьютер.
Почему важно изменить время сессии в WordPress
Уменьшение времени сессии снизит вероятность несанкционированного доступа в случае, если пользователь забудет выйти из системы. Особенно это актуально для сайтов с повышенными требованиями к безопасности, например, для корпоративных порталов или сайтов с административным доступом.
Кроме того, настройка времени сессии позволяет гибко управлять балансом между удобством пользователя и безопасностью. Короткая сессия вынудит пользователя чаще проходить повторную авторизацию, что повышает безопасность, но может раздражать при слишком частых запросах на вход.
Поэтому настройка времени сессии — важный шаг в обеспечении безопасности WordPress, который редко делается по умолчанию, но может существенно повысить защиту.
Как WordPress управляет временем сессии
WordPress использует куки сессии для хранения информации о входе пользователя. Куки wordpress_logged_in_ устанавливается с определённым временем жизни. Время жизни сессии задаётся в функции wp_set_auth_cookie(), где по умолчанию время жизни равно 48 часам (2 дня) для обычной авторизации и 14 дням, если выбран параметр "Запомнить меня".
Чтобы изменить время жизни сессии, можно использовать фильтр auth_cookie_expiration. Этот фильтр позволяет задать собственное время жизни куки в секундах.
Пример: изменение времени сессии на 1 час
Добавьте следующий код в файл functions.php вашей темы или в собственный плагин:
function wplogin_ru_auth_cookie_expiration( $length, $user_id, $remember ) {
// Если пользователь выбрал "Запомнить меня", сессия 1 день
if ( $remember ) {
return 24 * 60 * 60; // 1 день
}
// Иначе сессия 1 час
return 60 * 60; // 1 час
}
add_filter( 'auth_cookie_expiration', 'wplogin_ru_auth_cookie_expiration', 10, 3 );Этот код устанавливает время жизни сессии 1 час для обычного входа и 1 день, если выбрана опция "Запомнить меня".
Как проверить и отладить время сессии
После внесения изменений рекомендуется проверить, что время сессии действительно изменилось. Для этого можно использовать инструменты разработчика браузера (например, Chrome DevTools) и посмотреть cookie с именем wordpress_logged_in_*. В колонке "Expires" будет указано время истечения куки.
Также можно использовать плагин Debug Bar для отладки сессий и авторизации.
Дополнительная проверка через код
Для более точной проверки можно добавить временный код, который выводит время жизни куки на странице профиля пользователя:
function wplogin_ru_show_cookie_expiration() {
$expiration = apply_filters( 'auth_cookie_expiration', DAY_IN_SECONDS, get_current_user_id(), false );
echo '<p>Время жизни сессии (секунды): ' . esc_html( $expiration ) . '</p>';
}
add_action( 'show_user_profile', 'wplogin_ru_show_cookie_expiration' );
add_action( 'edit_user_profile', 'wplogin_ru_show_cookie_expiration' );Этот код выведет время жизни сессии на странице редактирования профиля пользователя в админке.
Плагины для управления сессиями и безопасностью входа
Если вы хотите более гибко управлять сессиями и авторизацией, можно использовать специальные плагины.
- Clearfy Pro — включает функции управления сессиями, позволяет ограничивать время и одновременные сессии.
- WPGPT — помогает автоматизировать безопасность и аудит сессий.
- My Popup — можно использовать для информирования пользователей о скором окончании сессии с возможностью продления.
Эти плагины можно найти на WPSHOP.RU.
Дополнительные рекомендации по безопасности сессий
Помимо уменьшения времени жизни сессии, рекомендуем:
- Использовать HTTPS для защиты куки от перехвата.
- Включать многофакторную аутентификацию (MFA).
- Ограничивать количество активных сессий для одного пользователя.
- Регулярно обновлять WordPress и плагины.
Все эти меры в комплексе значительно повысят безопасность вашего сайта.