Автоматическое завершение сессий
Хакеры могут воспользоваться открытой сессией пользователя, особенно администратора. Чтобы предотвратить этот тип атак, можно автоматически завершать сессии пользователей после периода бездействия.
function auto_logout_after_inactivity() {
$timeout = 1800; // 1800 секунд = 30 минут
$t = time();
if (isset($_SESSION['last_action'])) {
$duration = $t - $_SESSION['last_action'];
if ($duration > $timeout) {
wp_logout(); // Выход из системы
wp_redirect(home_url()); // Перенаправление на главную страницу
exit;
}
}
$_SESSION['last_action'] = $t; // Обновляем время последней активности
}
add_action('init', 'auto_logout_after_inactivity');
- Что делает этот код?
- Автоматически завершает сессии пользователей после 30 минут бездействия, что помогает предотвратить угон активных сессий.
Весь код находится в github.