gpt4 book ai didi

php - 如何在 Laravel 8 中解密 cookie

转载 作者:行者123 更新时间:2023-12-04 13:54:20 28 4
gpt4 key购买 nike

最近,我们将 Laravel 应用程序从 5.6 升级到了 Laravel 8.18.1。我们在 RouteServiceProvider.php 中使用 cookie 解密。
HomeController.php

Cookie::queue("channel", "mobile", 60241); // channel encryptedvalue =eyJpdiI6IjJVTGFzZHdEOXpjMk9VTGFFYmlSbXc9PSIsInZhbHVlIjoid0djMW9zbThWOXFQTk5aVXBDNmJBdz09IiwibWFjIjoiZGM4M2U1YTY0ZjVkNTE4NjBlNzg4NTZiNzhkNjdjYzcyODUzZWU1ZWMzNjdkNGNlMTgyZGIwNmQ4NjYzOWM3MSJ9


在 Laravel 5.6 中,它直接将哈希解密为值。
RouteServiceProvider.php
$encrypter = app(\Illuminate\Contracts\Encryption\Encrypter::class);
$channel_cookie = $encrypter->decrypt(Cookie::get('channel')); // result "mobile"
在 Laravel 8.18.1 中,它将哈希解密为带有竖线的值。
RouteServiceProvider.php
$encrypter = app(\Illuminate\Contracts\Encryption\Encrypter::class);
$channel_cookie = $encrypter->decrypt(Cookie::get('channel')); // result "a86aa854d5e61e2873acd30373b6725e36fba671|mobile"
$channel_cookie = explode("|",$channel_cookie)[1]; // result mobile
这是在 Laravel 8 中解密 cookie 的安全解决方案吗?

最佳答案

您可以在这个关于在 laravel 中添加 cookie 前缀的安全公告中找到问题的原因。
https://blog.laravel.com/laravel-cookie-security-releases
laravel 做这个操作的代码在下面链接的框架源文件中
https://github.com/laravel/framework/blob/8.x/src/Illuminate/Cookie/CookieValuePrefix.php
在我们的场景中,我们已经实现了与原始代码类似的东西,用两个词:cookie 名称被加密并添加到带有 | 的 cookie 值中。作为分隔符。

关于php - 如何在 Laravel 8 中解密 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65247093/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com