Sessions have become one of possible features that can be exploited to perform security attacks to PHP sites.
Sessions are not insecure by themselves, but if they are not used with a certain care, they may be eventually abused by malicious users.
Session hijacking abuses can happen when somebody with privileged network access can sniff traffic that goes to potential victim site. Session fixation abuses can happen when a site uses the same session identifier for the same user before and after he authenticates to log in.
This class provides a solution to prevent these kinds of session abuses to prevent that PHP sites that use sessions become compromised.
This class can be used to prevent security attacks known as session hijacking and session fixation.
When a session is initialized the class computes a fingerprint string that takes in account the browser user agent string, the user agent IP address or part of it and a secret word. If the fingerprint value changes, it is very likely that the session was hijacked and it should no longer be accepted.
To prevent session fixation attacks the calls the PHP session_regenerate_id() function so the session identifier changes everytime the session is checked.