我刚刚发现了一个关于哨兵报告的崩溃,我正在尝试调试并查看问题的根本原因。
幸运的是,在cookies面板中,我可以看到崩溃发生时使用的laravel_session
值。
问题是,如何解密cookie?
您可以使用以下代码解密cookie:
$cookie = 'eyJpdiI6ImFUQ0FvMWFSVlNvTmhlQjdLWGw1Z1E9PSIsInZhbHVlIjoicFh6Q09iTDl0K0huWU1Nc1NYVmxSY2hPRGU5Vk85dDJyYUpRbUVjRWg5R0JxYkVobkF3YkZVcVQrakFFUmxaVnZrTjFST3F3RTZ4akpDZEpvUFJiQXc9PSIsIm1hYyI6IjlhYmJhMTY3MWMxYWI3YjJmNmFjMmNkZWE0MWZmMmVhNTNiMjI5ZWY3NzUwNzQ0ZjAzMGQ1ZGU0YzVhNjJmZGYifQ==';
$cookie_contents = json_decode( base64_decode( $cookie, true ));
$value = base64_decode( $cookie_contents->value );
$iv = base64_decode( $cookie_contents->iv );
$clear = unserialize( \openssl_decrypt($value, \Config::get( 'app.cipher' ), \Config::get( 'app.key' ), OPENSSL_RAW_DATA, $iv));
echo "Cookie contents (Session ID): $clear\n";
您最终应该得到一个如下所示的会话ID:
我没有用Laravel 5.3进行测试,但我相信它会起作用。
使用此代码时,请确保将cookie的全部内容粘贴到$cookie
变量中,包括末尾的两个等号。