Автор: Khilinski 2024-10-14

Автоматическое завершение сессий

Хакеры могут воспользоваться открытой сессией пользователя, особенно администратора. Чтобы предотвратить этот тип атак, можно автоматически завершать сессии пользователей после периода бездействия.


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.