0

关于:

假设 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 时,我不会以他的身份登录,对吗?

4

1 回答 1

0

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

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

于 2018-05-22T12:22:37.640 回答