代码之家  ›  专栏  ›  技术社区  ›  Pradeep Yadav

任何限制授权头使用的方法,从开发人员工具中的网络选项卡的网站请求派生

  •  0
  • Pradeep Yadav  · 技术社区  · 2 年前

    问题是:我开发了一个JWT身份验证服务,它会发布授权头。然后,此标头值/令牌与所有web请求一起发送。React应用程序也可以使用此身份验证库。 现在,人们可以轻松地检查网站,检查所有与请求相关的数据并获得授权令牌。

    我如何限制其使用,或防止被攻击者使用,如上所述。

    我知道人们也会将用户代理/Ip地址之类的东西结合起来,使令牌更特定于用户 我想知道是否还有其他工具可以使用。

    0 回复  |  直到 2 年前
        1
  •  0
  •   Gary Archer    2 年前

    任何浏览器API消息凭证都以相同的方式工作,用户可以拦截并使用HTTP工具回放。例如,如果一个基于浏览器的应用程序使用仅HTTP的cookie作为后端凭据,用户也可以获得它,并使用工具发送它。

    权限

    主要要做的是确保后端授权只允许JWT访问令牌做用户无论如何都可以在应用程序中做的事情。因此,如果我可以在UI中查看我的购买,那么我可以通过API调用做同样的事情,但我不能提升我的权限:

    curl http://api.example.com/purchases \
    -H "Authorization: Bearer eyJraWQiOiIyV01TWGcwekEydVFlTjE ..."
    

    机密性

    另一个问题可能是用户可以阅读JWT的内容,例如 name , email , role 等等。还要注意的是,如果JWT包含此类个人信息,它可能会出现在浏览器历史记录或服务器日志中,这可能会作为PEN测试问题提出。

    因此,将无法读取的令牌返回到前端被认为更安全。例如仅HTTP的cookie。这个 OAuth for Browser Based Apps doc有一些建议。当访问令牌返回到浏览器时,还存在跨站点脚本威胁,其中仅HTTP的cookie通常被认为风险较小。