asp.net-core – uri查询参数中的asp.net核心JWT?

我有一个受JWT和Authorize属性保护的api,在客户端我使用jquery ajax调用来处理它.

这工作正常,但我现在需要能够安全下载文件,所以我不能设置标头承载值,它可以作为url参数在URI中完成吗?

= – = – = – = –

更新:这是我最终为我的场景做的,这是一个内部项目,而且数量非常少但安全性很重要,未来可能需要扩展:

当用户登录时,我生成一个随机下载密钥并将其放入数据库中的用户记录以及其JWT的到期日期,并将下载密钥返回给客户端.如果存在具有下载密钥且该密钥存在于用户记录中并且未到期的查询参数,则下载路由受到保护以仅允许下载.这样,dl密钥对于每个用户是唯一的,只要用户的auth会话有效并且可以容易地撤销,则该密钥有效.

最佳答案
虽然在技术上可以在URL中包含JWT,但强烈建议不要这样做.请参阅here的引用,这解释了为什么这是一个坏主意:

Don’t pass bearer tokens in page URLs: Bearer tokens SHOULD NOT be
passed in page URLs (for example, as query string parameters).
Instead, bearer tokens SHOULD be passed in HTTP message headers or
message bodies for which confidentiality measures are taken. Browsers,
web servers, and other software may not adequately secure URLs in the
browser history, web server logs, and other data structures. If bearer
tokens are passed in page URLs, attackers might be able to steal them
from the history data, logs, or other unsecured locations.

转载注明原文:asp.net-core – uri查询参数中的asp.net核心JWT? - 代码日志