关于:
让我们假设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与不同的用户不能作为他登录时,对吧?
答案 0 :(得分:0)
这不是安全漏洞。因为要生成有效的cookie,您需要应用程序的加密密钥,该密钥存储在服务器端,不应暴露给您的前端。
如果您创建了这个假cookie并将其发送出去,应用程序将尝试使用加密密钥解密cookie,并在此时失败。