Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session ZF2会话验证器_Session_Zend Framework2 - Fatal编程技术网

Session ZF2会话验证器

Session ZF2会话验证器,session,zend-framework2,Session,Zend Framework2,我在Zend Framework 2中实现了HttpUserAgent和RemoteAddr验证器,以帮助防止会话劫持 use Zend\Session\Validator\HttpUserAgent; use Zend\Session\SessionManager; $manager = new SessionManager(); $manager->getValidatorChain()->attach('session.validate', array(new HttpUse

我在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.

是否有回调或其他我没有做的事情来防止代码死掉?

这是php,我们不使用回调,但抛出异常。您需要捕获异常并从此处开始处理它


我建议使用事件管理器并监听dispatch事件来验证用户。

这必须是评论,而不是答案。