What are the best practices for protecting against session hijacking in PHP?

Session hijacking occurs when an attacker steals a user's session ID and impersonates them on a website. To protect against this, it is essential to use secure cookies, implement session regeneration, and validate user sessions on each request.

// Start a secure session
session_start();

// Set session cookie parameters
session_set_cookie_params([
    'httponly' => true,
    'samesite' => 'Strict'
]);

// Regenerate session ID to prevent session fixation
session_regenerate_id(true);

// Validate user session on each request
if (!isset($_SESSION['user_id'])) {
    // Redirect to login page or handle unauthorized access
}