You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为HTTP站点隐藏Bearer认证授权头以提升安全性?

浏览器请求头安全与替代认证方案

一、关于在浏览器中隐藏Authorization头的说明与可行思路

首先明确:浏览器无法完全隐藏发送出去的请求头——开发者工具的网络面板是浏览器的核心调试功能,所有请求的头信息都会被暴露。你删除头触发401,是因为后端依赖该头完成身份验证,所以核心思路不是“隐藏”,而是避免前端直接暴露可被篡改的敏感凭证:

  • 使用HttpOnly + Secure Cookie存储认证凭证
    后端设置Cookie时标记HttpOnly(禁止前端JS读取/修改)和Secure(仅在HTTPS请求中携带),前端无需手动在axios中设置Authorization头,浏览器会自动在每次请求中携带该Cookie。用户在网络面板能看到Cookie,但无法通过JS篡改,也不会在前端代码中明文出现token。
    修改你的请求代码如下:

    const getCategories = () => {
      var encodedURI = encodeURI(categoryEndpoint);
      // 移除手动设置的Authorization头,浏览器自动携带HttpOnly Cookie
      return axios.get(encodedURI, {
        headers: {
          "x-api-key": "api key",
          "Content-Type": ""
        }
      });
    };
    
  • 禁止在前端持久化敏感凭证
    不要将token存入localStorage/sessionStorage,这些存储可以被用户直接查看和修改;也不要在前端代码中硬编码凭证,避免被反编译获取。

二、比Bearer认证更安全的替代方案

这是成熟且安全的传统方案:

  • 用户登录后,后端生成唯一SessionID,存入标记HttpOnly+Secure的Cookie,后端通过SessionID关联用户身份信息。
  • 前端无需管理任何认证凭证,浏览器自动处理Cookie的传输;配合CSRF Token可以有效防范跨站请求伪造攻击。
  • 优势:完全隔离前端对认证凭证的访问,从根源上避免前端篡改凭证的可能。

2. OAuth2 授权码模式 + PKCE

适合前后端分离或第三方登录场景:

  • 用户跳转至授权服务器完成登录,授权服务器返回授权码而非直接返回token;前端携带授权码和预先生成的code_verifier,向授权服务器兑换access_token。
  • access_token设置较短过期时间(如15分钟),refresh_token存入HttpOnly Cookie,用于过期后获取新的access_token。
  • 优势:避免前端直接接触长期有效凭证,PKCE机制防止授权码被恶意拦截盗用。

3. 短生命周期JWT + 内存存储access_token

若仍需使用JWT,可优化为:

  • 登录后后端返回短过期时间的access_token(如15分钟)和refresh_token,refresh_token存入HttpOnly Cookie。
  • access_token仅存在前端内存中(页面刷新后重新通过refresh_token获取),不做持久化存储。
  • 优势:即使access_token被泄露,有效期极短,降低风险;refresh_token无法被前端篡改。

4. 请求签名(HMAC)

适合对请求完整性要求高的场景:

  • 后端为用户分配accessKey(公开)和secretKey(仅后端存储),前端仅保留accessKey。
  • 前端每次请求时,用请求参数、时间戳、请求路径等信息,通过HMAC算法生成签名,将accessKey和签名放入请求头。
  • 后端接收请求后,用相同规则重新生成签名并比对,验证请求的合法性。
  • 注意:该方案更适合可信客户端(如桌面应用),前端网页需确保secretKey不被泄露,可结合后端动态生成临时签名密钥。

内容的提问来源于stack exchange,提问作者Kimi Raikkonen 9790

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 15:35:27