for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* Extension of Session Library to
* allow preliminary invalidation, and json-encoded session data
*/
class MY_Session extends CI_Session {
* Check if the session is valid
*
* @return bool
public function session_valid()
{
$ip_address = $_SERVER['REMOTE_ADDR'];
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$ip_blacklist = [
'0.0.0.0',
'127.0.0.1'
];
$ua_blacklist = [
'false',
FALSE,
'',
'PHPUnit'
if (in_array($ip_address, $ip_blacklist) || in_array($user_agent, $ua_blacklist))
$this->sess_destroy();
return FALSE;
}
return TRUE;
* Fetch/validate the current session data
public function sess_read()
return ($this->session_valid()) ? parent::sess_read() : FALSE;
* Validate the session before creation
public function sess_create()
return ($this->session_valid()) ? parent::sess_create() : FALSE;
* Serialize the session data to JSON
* @param array $data
* @return string
public function _serialize($data)
return json_encode($data);
* Unserialize the session data
* @param string $data
* @return mixed
public function _unserialize($data)
return json_decode($data, TRUE);
/* End of file MY_Session.php */
/* Location: ./application/libraries/MY_Session.php */