我在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.
是否有回调或其他我不会阻止代码死亡的事情?
答案 0 :(得分:0)
这是php我们不使用回调,但抛出异常。您需要捕获异常并从那里处理它。
我建议使用事件管理器并监听调度事件以验证用户。