Laravel Cookies 中的额外字符串和管道字符

2023-12-04

在我正在开发的 Laravel 6x 项目中,我设置了一个 cookie:

Cookie::queue('remember_me', json_encode(['uid' => $user->id, 'token' => $token]),2628000);

我正在读取 cookie 并使用以下命令解密它:

$cookies = Crypt::decrypt(Cookie::get('remember_me'),false);

这工作得很好,除了 $cookies 的值有一个额外的前置字符串和一个 | 。其中的分隔符:

e80cd502fec2a621b624ead8eb1cc91a2e94846b|{"uid":872,"token":"l1214065120208k"}

显然我可以使用它来获得我需要的东西,但我一直无法找到任何关于为什么该字符串和 | 的信息。被添加到 cookie 之前。有任何解释或文档链接吗?

我确实在这里找到了另一个线程有类似的问题但没有答案:

如何在 Laravel 8 中解密 cookie

我还发现一个线程建议 Laravel 8 将 session_id 添加到 cookie 字符串。这就是我在这里看到的吗?

Thanks,

Michael


该值看起来是 cookie 名称的 HMAC-SHA1v2追加到最后。

这个逻辑的实现是在Cookie值前缀Laravel 中的类,代码如下所示:

public static function create($cookieName, $key)
{
    return hash_hmac('sha1', $cookieName.'v2', $key).'|';
}

这用于EncryptCookies中间件相应地进行加密和解密时。相关源码为:

// in decrypt() function
$hasValidPrefix = strpos($value, CookieValuePrefix::create($key, $this->encrypter->getKey())) === 0;
$request->cookies->set(
        $key, $hasValidPrefix ? CookieValuePrefix::remove($value) : null
);

// in encrypt() function
$this->encrypter->encrypt(
        CookieValuePrefix::create($cookie->getName(), $this->encrypter->getKey()).$cookie->getValue(),
        static::serialized($cookie->getName())
)

我把这个逻辑放入Cyber​​Chef 页面在这里用我拥有的一些本地cookie对其进行测试并验证输出是否匹配,结果确实如此。如果您去那里插入您的应用程序密钥(最好是一次性密钥),您应该会看到它输出您问题中的哈希值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel Cookies 中的额外字符串和管道字符 的相关文章

  • jqGrid treeGrid 捕获展开折叠事件

    我使用 jqGrid 来构建一些大树 现在我想记住cookie中展开和折叠的节点 所以我想捕捉展开和折叠事件 我在手册中找不到它 所以我用这种方式解决了 grid find div treeclick bind click function
  • 通过curl设置cookie

    我试图在 PHP 中通过 cURL 设置 cookie 但失败了 我的 php 代码如下所示 ch curl init url http localhost javascript 20cookies test cookies html cu
  • iPhone:应用程序重新启动时不会保存 NSHTTPCookie

    在我的 iPhone 应用程序中 我希望在应用程序重新启动时能够重用相同的服务器端会话 服务器上的会话由 cookie 标识 该 cookie 在每次请求时发送 当我重新启动应用程序时 该 cookie 消失了 我无法再使用相同的会话 当我
  • Cookie 仍通过 ini_set('session.cookie_secure',1); 在 HTTP 上设置

    我的配置文件如下所示 ini set session cookie secure 1 ini set session cookie httponly 1 ini set session use only cookies 1 session
  • Cookie 未设置或首次不起作用

    在每个页面上 我都设置了一个 cookie 来为与该会话对应的标题按钮着色 问题是 当我第一次在不同的部分打开页面时 cookie 仍然是旧的 彩色按钮也是如此 然后 如果我再次单击同一按钮 则 cookie 会被正确设置 为什么 这是我的
  • 跨子域和主机的 Cookie

    在我使用开发环境和语言组合编写的应用程序中 我需要从两个不同的子域 每个子域位于单独的主机上 访问 cookie cookie 正在设置www mydomain com使用下面的 PHP 代码 我尝试从distant mydomain co
  • 如何在 JSTL 中设置 cookie

    我正在尝试实现以下目标 但不确定是否可能以及语法应该是什么
  • 使用 Postman 获取并存储 cookie 的值 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我需要获取 cookie 的值 该值仅在我在邮递员中发送请求时创建 我已经尝试了一切 但我不知道如何实现这一目标 我还需要存储该值以便在我的
  • 即使 cookie 在开发人员工具中列出且 httpOnly 标志设置为 false,访问 document.cookie 也会返回空字符串

    有时 访问时document cookie在登录页面中 我得到一个空字符串 即使 cookie 列在 Chrome 和 Firefox 开发者工具中 我感兴趣的 cookie 的 httpOnly 标志设置为 false 我感兴趣的 coo
  • 如何使用 Java 以编程方式登录 Facebook?

    我正在尝试编写一个可以自动登录 Facebook 的 Java 程序 到目前为止 我已经得到了以下代码 可以将主页 html 页面下载到字符串中 但不知道如何发送电子邮件和密码来登录 Facebook Java 程序还需要处理返回的 coo
  • 使用 ASP.NET Core Identity 将令牌保存在 Cookie 中

    我想在我的 身份 生成的 cookie 中保存一些内容 我目前正在使用文档中的默认身份设置 启动 cs services Configure
  • 仅在第一次使用 localStorage 加载网站时显示 DIV

    我正在尝试完成这项工作 但我遇到了一些问题 就像标题所说 我希望仅在第一次加载网站时显示 DIV 我知道如何使用 PHP 和 Cookie 但我想要使用 localStorage 函数 这是我的代码 div div document rea
  • Angular 2/4 存储令牌的位置

    我有一个用于生成令牌的 REST API 我在 Angular 4 客户端中使用它 但问题是在哪里存储该令牌 在互联网上我发现我可以存储在本地存储或cookie中 所以我的问题是 如果存储令牌是本地存储 并且我刚刚从另一个浏览器复制了有效令
  • Node + Express + Nginx 未设置 Cookie

    我有一个使用 Express 的 Node 应用程序 我尝试为我的客户端设置 cookie 它在本地环境 http 上运行良好 但是一旦我投入生产 https 我就很好地收到了cookie 我可以在响应中看到它 但它没有设置 任何想法 Ng
  • iframe 不读取 Chrome 中的 cookie

    Chrome 不允许子 iframe 读取自己的 cookie 我有一个带有子 iframe 的父网页 家长在https first site com 孩子在 父级内部 cookie set with 小路 安全 真实 仅http 假 域名
  • 为什么 Chrome 审核建议我最小化 Cookie 大小?

    如何最小化请求的 cookie 大小 Chrome 似乎 警告我 我的 cookie 大小为 41B 这根本不是很多 但是它警告我有什么原因吗 这是一个 PHPSESSID cookie 我真的不知道如何最小化它 有任何想法吗 我的请求响应
  • 在 PHP 中计算 Cookie 大小

    我想使用 php 在服务器端读取 cookie 并计算其长度 但找不到任何直接方法来执行此操作 那么如何实现这个任务呢 那这个呢 setcookie user Dino babu kannampuzha time 3600 if isset
  • 生产中未使用快速会话设置 Cookie

    我的应用程序分为客户端和服务器 客户端是托管在 Now sh 上的前端 Nextjs 应用程序 服务器是使用 Express 创建并托管在 Heroku 上的后端 因此域是 client app now sh 和 server app he
  • 删除 servlet 中的 cookie 时出现问题

    我尝试使用以下代码删除 servlet 中的 cookie Cookie minIdCookie null for Cookie c req getCookies if c getName equals iPlanetDirectoryPr
  • 如何在 C# 中将 cookie 过期设置为“会话”?

    不言自明 在 PHP 中 解决方案是将 cookie 过期设置为 0 我不确定 C 因为它需要 DateTime 值 的文档Cookie 过期 http msdn microsoft com en us library system net

随机推荐

  • .* 匹配 2 次

    我尝试过了match 用C 正则表达式 结果发现它匹配任何字符串两次 first the 完整的字符串 比第二次空字符串 我期望 在一场比赛中匹配所有内容 我完全困惑为什么会这样以及如何防止这种情况 长话短说 我需要替换部分文件名 并且可以
  • 如何在 C++ 中创建文件映射?

    我正在编写一个游戏预加载器 一个简单的程序 在启动程序之前将某些文件 映射 加载到缓存中 我被告知要使用CreateFileMapping 但我仍然不确定它将它加载到物理内存还是虚拟内存中 不管怎样 我应该把需要加载的文件放在哪里 这是我的
  • Jersey 和 HK2 - 注入当前用户

    我正在使用 jersey 2 17 和 HK2 创建一个简单的休息应用程序 我有一个ContainerRequestFilter拒绝任何没有 currentuser cookie 的请求 我有这样的事情 Path users public
  • 远程运行 python 脚本的更好方法

    我在远程计算机上有一个 python 脚本 我想从本地计算机执行该脚本 它接受一些参数 如果我要在那台机器上运行它 这就是我运行它的方式 python python parallel py num 10 ssh home user1 pat
  • Javascript生成具有特定字母数量的随机密码[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想在客户端的网页中用 JavaScript 生成密码 密码应使用字母和数字 也许还有一些符号 如何在 Javascript 中安全地生成密码 由于密码需要是不可预测的 因此它需要由
  • 使用 CSS 而不是 jquery 将图像置于 div 中居中

    我试图将任何大小的图像放入 始终 方形 div 中 并在父 div 的大小发生变化时保留外观 这就是我正在做的 CSS photo container width 250px height 250px overflow hidden bor
  • 一个可重用的函数,使用 html5 canvas 将图像剪辑成多边形

    猜测帖子的标题可能需要编辑 但目前我不知道问题出在哪里 我在这里和其他地方阅读了类似问题的页面和答案 Stack Overflow 的一个答案特别接近 但我不明白 我想要一个函数 在画布上所需的坐标处绘制多边形 并用从文件加载的一些背景图像
  • 从现有 MongoDB 数据库创建 Django 模型

    我在 MongoDB 中有一些数据库 我想为其动态创建模型 因为数据库很多 我无法手动完成 问题 我的 models py 应该是什么样子 inspectdb 是否适用于 mongodb 数据库或仅适用于基于 SQL 的数据库 由于数据库模
  • 终止的线程恢复

    我将一堆线程对象存储在数组列表中 我希望能够随机启动这些线程 同一个线程可以启动多次 在启动线程对象之前 我检查线程是否处于活动状态 以及它们是否具有 NEW 或 TERMINATED 状态 这个限制是因为 我不想打扰 繁忙 的线程 现在
  • VirtualBox 中的 Neo4j 服务器:无法创建 rrd 存储

    我正在尝试运行我的 Virtualbox 中的 Neo4j 服务器正在运行 Ubuntu 这服务器文件和数据库位于我的 Windows 主机内并可访问通过共享文件夹 vboxsf 不幸的是 我无法轻松地将数据传输到虚拟机并直接在那里运行 由
  • Android异常:您是否忘记调用“public void setup(LocalActivityManager ActivityGroup)”

    MyCode public class MainActivity extends Activity Override protected void onCreate Bundle savedInstanceState super onCre
  • PHP 时间戳直到“几小时前”的麻烦

    我需要确定我们网站上发布的评论的 时间之前 时间戳 我的老板希望它只显示到几个小时 因此它应该显示 48 小时前 而不是 2 天前 或 480 小时而不是 20 天前 这是我找到的代码 但直到几个小时我才知道如何做到这一点 date def
  • 禁用应用程序的 Android O 自动填充服务

    Android O 有支持的功能自动填充对于字段 有什么方法可以针对特定应用程序禁用它 也就是说 我想强制我的应用程序不使用自动填充服务 是否可以 要阻止整个活动的自动填充 请在活动的 onCreate 中使用它 getWindow get
  • 自动完成时触发了任何事件吗?

    我有一个非常简单的表格 当用户在输入字段中键入内容时 我想更新他们在页面其他位置键入的内容 这一切都很好 我已将更新绑定到keyup change and click events 唯一的问题是 如果您从浏览器的自动完成框中选择输入 它不会
  • 从触发器调用包含动态 SQL 的存储过程

    我从触发器调用存储过程并收到以下错误 存储函数或触发器中不允许使用动态 SQL 为什么会发生这种情况 动态SQL是在存储过程中执行的 这是从触发器调用的 也许这就是问题所在 如果是的话有什么解决办法吗 编辑 添加代码 这是主表中的触发器 T
  • 如何在Excel VBA中根据行和列ID查找单元格值

    需要 VBA Sub 来根据行和列 ID 查找单元格值 在下面的示例中 我需要选择 East 和 RT3 相交处的值 即 80 A B C D E 1 null RT1 RT2 RT3 RT4 2 North 31 40 78 11 3 S
  • 在后台运行 cgi shell 脚本

    我有一个像这样的cgi shell脚本 bin sh show the page echo Content type text html echo echo b Hello world b the task I want to do in
  • 如何以像素增量滚动 DataGridView

    我最初的方法是将 DataGridView 包含在面板内 将其高度设置在面板边界之外 然后更改控制面板的滚动条位置 然而 我刚刚发现我的 DataGridView 内的行数将达到 2000 这迫使我将 DataGridView 的大小至少设
  • 在后台进程后运行代码 - parse.com

    我的 viewController 中有一个 findObjectsInBackgroundWithBlock 方法 现在我想执行代码 但直到这个后台方法完成为止 我怎样才能做到这一点 我正在使用 swift 编程语言 这是一些可以帮助您的
  • Laravel Cookies 中的额外字符串和管道字符

    在我正在开发的 Laravel 6x 项目中 我设置了一个 cookie Cookie queue remember me json encode uid gt user gt id token gt token 2628000 我正在读取