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

如何隐藏JSON API并防止未授权访问?

保护公开JSON API的实用方案

针对你的API可被任意持有URL的人访问的问题,以下是几种有效的防护手段:

  • API密钥验证:为合法客户端分配唯一密钥,要求请求时在Authorization请求头(如Authorization: Bearer YOUR_API_KEY)中携带。服务端先校验密钥有效性,无效则返回403禁止访问。注意:绝不能把密钥硬编码在前端代码中,移动端/桌面端可通过环境变量注入,Web端可让用户登录后从后端获取临时密钥。

  • IP白名单限制:若你的应用服务于固定IP范围(比如企业内部场景),可在托管服务的防火墙或API网关配置IP白名单,仅允许指定IP段的请求通过。但此方法不适用面向公网的C端应用。

  • 请求签名校验:客户端每次请求时,用密钥对请求路径、参数、时间戳等信息生成签名(比如用HMAC-SHA256算法),将签名和时间戳放在请求头中。服务端收到请求后,用相同逻辑重新计算签名并对比,同时校验时间戳与服务器时间的差值(比如不超过5分钟),防止重放攻击。

  • 反向代理/API网关层防护:在API前部署反向代理或API网关,借助网关完成身份验证、速率限制、请求过滤等工作。例如配置JWT令牌验证:用户登录后获取JWT,每次请求携带该令牌,网关自动校验令牌的合法性与有效期。

  • 速率限制:即使无法完全阻止非法访问,也可通过速率限制限制单个IP或API密钥的请求频率(比如每分钟最多100次请求),超过阈值则返回429状态码,避免恶意爬取耗尽资源。

  • 隐藏真实API地址:不要在前端直接暴露API URL,可通过自有后端接口转发请求——前端调用后端接口,由后端去请求目标JSON API。这样用户只能看到后端接口地址,无法获取真实API的URL。同时,API返回的错误信息不要泄露服务器、数据库等敏感细节。

  • 用户级授权:若API数据与特定用户绑定,可采用OAuth2.0授权流程。用户登录后获取授权令牌,服务端通过令牌识别用户身份,判断其是否有权限访问对应数据,实现细粒度的权限控制。

内容的提问来源于stack exchange,提问作者DLC

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:45:39