【问题标题】:Laravel/Passport - Is that security hole?Laravel/Passport - 那是安全漏洞吗?
【发布时间】:2017-04-12 04:23:26
【问题描述】:

关于:

假设 Access-Control-Allow-Origin: *

所以我们有这样的场景: 我被授权将 laravel_token 设置到我的 cookie 中,并将 csrfToken 提供给前端框架。

请告诉我为什么我不能使用已经提供的 csrfToken 轻松创建新的 laravel_token,将其放入我的 cookie 并将其发送到被授权为不同用户的后端?

Route::get('/token', function(\Laravel\Passport\ApiTokenCookieFactory $factory, Request $request) {

    $cookie = $factory->make(
        25665, // different user's ID to be attacked
        $providedVisibleCSRFToken
    );

    return response()->json(['X-CSRF-TOKEN' => $providedVisibleCSRFToken, 'JWT-TOKEN' => $cookie->getValue()]);
});

从现在开始,当我将 cookie 更改为使用不同用户的劫持 JWT 时,我不会以他的身份登录,对吧?

【问题讨论】:

  • 我不确定您的问题,但作为旁注,大多数库(包括 Laravel)要求您将可能的安全漏洞直接发送给所有者(在本例中为 Taylor),以防它们被利用.见他的笔记github.com/laravel/laravel
  • 第三方将如何生成该令牌?那是在服务器端生成的...

标签: laravel security session cookies laravel-passport


【解决方案1】:

这不是安全漏洞。因为要生成有效的 cookie,您需要应用程序的加密密钥,该密钥存储在服务器端,不应暴露给您的前端。

如果您创建了这个假 cookie 并将其发送出去,应用程序将尝试使用加密密钥解密 cookie,但此时会失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 2021-08-19
    相关资源
    最近更新 更多