Are there best practices for securely storing and accessing user data in PHP session variables?

When storing and accessing user data in PHP session variables, it is important to follow best practices to ensure the security of the data. This includes properly sanitizing inputs, encrypting sensitive information, and validating user permissions before accessing the data.

// Start the session
session_start();

// Sanitize and store user data in session variables
$_SESSION['username'] = filter_var($_POST['username'], FILTER_SANITIZE_STRING);
$_SESSION['email'] = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);

// Encrypt sensitive information before storing in session
$_SESSION['password'] = password_hash($_POST['password'], PASSWORD_DEFAULT);

// Validate user permissions before accessing data
if ($_SESSION['user_role'] === 'admin') {
    // Access data
    echo 'Welcome, ' . $_SESSION['username'];
} else {
    echo 'You do not have permission to access this data.';
}