我在 Zend Framework 2 中实现了 HttpUserAgent 和 RemoteAddr 验证器来帮助防止会话劫持。
use Zend\Session\Validator\HttpUserAgent;
use Zend\Session\SessionManager;
$manager = new SessionManager();
$manager->getValidatorChain()->attach('session.validate', array(new HttpUserAgent(), 'isValid'));
它似乎确实停止了被劫持的会话,但是它并没有让我显示一个很好的错误消息或将用户重新路由到登录页面,而是我收到了这个 PHP 错误消息:
Fatal error: Uncaught exception 'Zend\Session\Exception\RuntimeException'
with message 'Session validation failed' in \zendframework\library\Zend\Session\SessionManager.php on line 111.
是否有回调或其他我没有做的事情来防止代码死亡?