【问题标题】:JWT not sent when loading url directly from browser address bar直接从浏览器地址栏加载 url 时未发送 JWT
【发布时间】:2017-05-20 20:05:05
【问题描述】:

我有一个使用 JWT 进行身份验证的 MEAN 堆栈应用程序。我使用 Satellizer(一个 Angular 模块)来实现 JWT 身份验证流程。每当通过应用发出请求时,它都会发送带有不记名令牌的 Authorization 标头。

我的问题是,当通过地址栏发出对受限 url 的请求时,比如说/dashboard,浏览器没有发送授权标头,从而阻止了请求。

那么我应该怎么做才能让浏览器在向受限网址发出请求时发送授权标头?

【问题讨论】:

    标签: angularjs authentication authorization jwt satellizer


    【解决方案1】:

    如果用户直接在栏中输入地址,恐怕除了重定向到错误表单之外,您什么也做不了。浏览器不会发送特定的标头

    但是,如果您正在构建用户单击的链接,那么您可以在 URL 链接本身 /dashboard?jwt= 中添加 JWT 令牌。在服务器中,您必须考虑这种身份验证情况

    在这种情况下要小心,浏览器可能会缓存 URL 并将其写入一些日志中。如果 JWT 已签名且未加密,则如果攻击者具有对日志文件的读取权限,它可能会泄露敏感信息。也可能是会话劫持攻击。

    【讨论】:

    • 同意,但我不确定通过查询字符串发送令牌是否是个好主意。对吗?
    • 我同意你的看法。浏览器可以缓存 URL 并将其写入一些日志。如果 JWT 已签名且未加密,则如果攻击者具有对日志文件的读取权限,它们可能会泄露敏感信息。也可能是会话劫持攻击。所以,OP应该小心使用这个选项
    猜你喜欢
    • 2015-01-15
    • 1970-01-01
    • 2019-07-13
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    相关资源
    最近更新 更多