What are the implications of setting a long session duration in PHP, and how can potential security risks be mitigated?

Setting a long session duration in PHP can increase the risk of session hijacking and other security vulnerabilities. To mitigate these risks, it's important to regularly regenerate session IDs, use secure cookies, and implement proper input validation and data sanitization.

// Set session duration to 30 minutes
ini_set('session.gc_maxlifetime', 1800);
session_start();

// Regenerate session ID every 30 minutes
if (isset($_SESSION['last_activity']) && time() - $_SESSION['last_activity'] > 1800) {
    session_regenerate_id(true);
    $_SESSION['last_activity'] = time();
}

// Use secure cookies
ini_set('session.cookie_secure', 1);
ini_set('session.cookie_httponly', 1);