3

セッションの乗っ取りを防ぐために、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.

コードが死ぬのを防ぐために私がしていないコールバックや何か他のものはありますか?

4

1 に答える 1

0

これは、コールバックを使用しない php ですが、例外をスローします。例外をキャッチして、そこから処理する必要があります。

イベント マネージャーを使用し、dispatch イベントをリッスンしてユーザーを検証することをお勧めします。

于 2013-09-24T15:00:55.843 に答える