云与基础设施安全
API (应用程序编程接口)
约 5 分钟阅读
最后更新: 2026-04-28
什么是 API
API(应用程序编程接口)是允许软件应用程序之间进行通信和数据交换的一组规则。就像餐厅中,顾客(应用程序)看菜单(API 规范)点餐,服务员(API)将订单传达给厨房(服务器)并送回菜品(数据)。
天气应用能显示最新天气数据,是因为它通过气象服务的 API 获取数据。现代 Web 服务在后台组合了数十到数百个 API。
API 的主要类型
REST API
目前最广泛采用的 API 设计风格。使用 HTTP 方法和 URL 来标识资源。简单易懂。
GraphQL
Facebook 开发的查询语言。客户端可以精确指定所需数据,避免 REST 常见的过度获取问题。
WebSocket
实现服务器和客户端之间的双向实时通信。用于聊天应用、实时股价和在线游戏。
gRPC
Google 开发的高性能 RPC 框架,使用 Protocol Buffers 进行二进制序列化。常用于微服务间的内部通信。
API 认证与授权
安全使用 API 需要认证(谁在访问)和授权(允许做什么)。
- API 密钥:最简单的认证方式,但泄露后任何人都可以访问。
- OAuth 2.0:实现第三方认证,无需直接共享密码。
- JWT:将认证信息嵌入令牌中,无需服务器端会话即可验证。
使用密钥管理工具和环境变量来管理 API 密钥。
速率限制与 API 保护
速率限制在时间窗口内设置 API 请求数量上限。没有速率限制,攻击者可以通过 DDoS 攻击使服务器瘫痪。
达到速率限制时,服务器返回 HTTP 429 状态码。API 使用方应实现指数退避重试逻辑。
API 安全实践
API 是现代 Web 服务的核心,也是攻击者的主要目标。OWASP API Security Top 10 列出了认证缺陷、对象级授权不当和数据过度暴露等主要风险。
常见误解
- API 只与开发人员有关
- API 驱动着智能手机应用、物联网设备、支付系统等。登录社交媒体、使用数字钱包支付、使用打车应用都依赖 API。
- 私有 API 自动安全
- 如果网络被入侵或遭受供应链攻击,内部 API 也可能被利用。零信任原则对内部 API 同样重要。
- REST 已过时,正在被 GraphQL 取代
- GraphQL 在特定场景中表现出色,但 REST 并非在所有场景中都不如 GraphQL。两者共存。
分享