How can PHP sessions be securely implemented in a login system?

To securely implement PHP sessions in a login system, it is important to use session hijacking prevention techniques such as regenerating session IDs, setting session cookie parameters securely, and using HTTPS to encrypt communication. Additionally, it is crucial to validate user input and sanitize data to prevent SQL injection and other forms of attacks.

// Start a secure session
session_start();

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

// Set session cookie parameters for increased security
session_set_cookie_params([
    'lifetime' => 0,
    'path' => '/',
    'domain' => 'example.com',
    'secure' => true, // Ensures session cookie is only sent over HTTPS
    'httponly' => true // Prevents session cookie from being accessed by JavaScript
]);

// Validate user input and sanitize data to prevent attacks
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
$password = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING);

// Perform login authentication
// Code for login authentication goes here