随着企业数字化进程的发展,企业正在大量使用 API 来连接服务和传输数据,API 在带来巨大便利的同时也带来了新的安全问题,被攻击的 API 可能导致重要数据泄漏并对企业业务造成毁灭性影响。因此,API 安全正受到业界和学术界的广泛关注,开放 Web 应用程序安全项目(OWASP)在 2019 年将 API 列为最受关注的十大安全问题。
OWASP API 安全计划是这样描述的:“API 是现代移动、SaaS 和 Web 应用程序的重要组成部分,其可以在面向客户、面向合作伙伴和内部应用程序中找到。因性质使然,API 会暴露应用程序逻辑和个人身份信息 (PII) 等敏感数据,正因为如此,API 逐渐成为众多攻击者的目标。没有安全的 API,就不可能实现快速创新。”
本文将带您了解如何使用腾讯云 API 网关保护 API 安全,为您的业务保驾护航。
在腾讯云 API 网关上一般可以通过 9 种方式来保护 API 安全:
1. 链路加密;
2. 认证鉴权;
3. 请求映射与转换;
4. 参数校验;
5. IP 访问控制;
6. 跨域访问控制 CORS;
7. 流量监控与保护;
8. DDoS 防护能力;
9. 与 Web 应用防火墙 WAF 结合;
以下将分别介绍每种方式的作用场景与配置方法。
01.
链路加密
API 是用来在服务之间交换数据的重要手段,如果交换的数据中包含敏感信息(比如身份信息、银行信息等),那么数据的安全性和隐蔽性就显得尤为重要。腾讯云 API 网关支持基于 TLS 协议对链路中传输的报文数据进行加密,保护传输数据不会被泄露及篡改。
02.
认证鉴权
鉴权(authentication)是指验证用户是否拥有访问业务系统的权利,也是保护 API 安全最常见的一种方式。腾讯云 API 网关目前主要有 4 种鉴权方式,分别是:
- 免鉴权
任何用户无需鉴权即可通过 API 网关。
- 应用认证
分发密钥对给用户,API 调用方通过密钥对生成签名,使用签名进行请求。API网关收到请求后会校验签名,签名一致的情况下放行,否则拒绝请求。
- OAuth 2.0 认证
支持通过标准的 OAuth 2.0 协议对接 API 开放方自身的认证服务器,认证服务器会向获得权限的API 调用方颁发令牌,API 调用方可使用令牌访问后端资源。
- EIAM 认证
支持通过腾讯云 EIAM 产品对 API 进行认证和授权管理,适用于对 API 有细粒度权限管理的业务场景。
当您根据自己的业务场景找到合适的鉴权方式后,可以在创建 API 时选择对应的认证方式,创建 API 成功后即可使用该认证方式调用 API。
03.
映射转换
API 开放者可以在 API 网关上配置客户端访问 API 网关的规则、API 网关请求业务后端的规则,并将这两种规则关联起来,通过这种方式就来实现请求映射与转换。如图,通过在 API 网关上的配置,对外暴露的请求和实际后端的请求中,请求方法、请求协议、访问域名、访问环境、请求路径 Path、Query 参数等都发生了变化,对于 API 调用方而言,实际实现业务的后端是完全隐藏的。这样就能保证客户端直接请求业务后端带来的安全风险。
04.
参数校验
要保证系统的安全性与健壮性,数据校验必不可少。通过校验参数的合法性,我们可以避免因为传参异常导致业务系统报错的问题。API网关支持配置请求参数的校验规则,您可以指定参数名,参数类型和参数数据类型;同时可以指明是否必填、默认值、示例数据和描述说明。API 网关会根据用户配置的所有参数执行校验与映射,如果客户端传递了不符合规则的参数,请求将会被API网关拒绝,不会转发给后端。
05.
IP 访问控制
API 安全防护过程中经常需要针对 IP 地址进行安全防护,API 网关针对此场景提供了 IP 访问控制能力,主要用于限制 API 的调用来源 IP,可以通过配置某个 API 的 IP 白名单/黑名单来允许/拒绝某个来源的 API 请求。IP 访问控制采用插件的配置方式,创建 IP 访问控制插件后,绑定到 API 即可立即生效,具体配置方式请参考:
- IP 访问控制插件使用指南:https://cloud.tencent.com/document/product/628/53381
06.
跨域访问控制 CORS
当一个资源从与该资源本身所在的服务器不同的域、协议或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。跨域本质上是绕过同源请求的严格限制,所以会存在一定的安全风险,跨域访问控制 CORS 是为了弥补 JSONP 等跨域常见技术的缺陷,而提出的安全方便的跨域方案。API 网关上支持针对 API 设置 W3C 规范的自定义的复杂 CORS 规则,帮助 API 开放者避免跨域过程中的安全问题。
跨域访问控制 CORS 同样采用插件的配置方式,创建跨域访问控制 CORS 插件后,绑定到 API 即可立即生效,具体配置方式请参考:
- 跨域访问控制 CORS 插件使用指南:https://cloud.tencent.com/document/product/628/58253
07.
流量监控与保护
流量监控与保护的内容在 API 网关的上一篇最佳实践,可参考:
- 使用腾讯云 API 网关实现多维度精细化限流
08.
DDoS 防护能力
DDos 也叫分布式拒绝服务,是利用恶意程序远程控制很多感染了恶意程序的计算机,让这些计算机同时对一个或多个目标发起请求,消耗目标服务器 CPU 内存资源或网络带宽资源,从而造成服务器无法正常向用户提供服务。API 网关共享实例和专享实例均接入了腾讯云内部的 DDoS 防护体系,其中共享实例默认具备基础的 DDoS 防护能力,专享实例具备一定的 DDoS 高防能力,使用 API 网关可确保您的业务免受 DDoS 攻击威胁。
09.
与 Web 应用防火墙 WAF 结合
腾讯云 Web 应用防火墙是一款非常强大的安全产品,能帮助腾讯云内及云外用户应对 Web 攻击、入侵、漏洞利用、篡改、后门、爬虫、域名劫持等网站及 Web 业务安全防护问题。通过部署腾讯云 WAF 服务,并将 WAF 与 API 网关结合,可将 Web 攻击威胁压力从 API 网关转移到 WAF 上,由专业的工具来做专业的防护。API 网关结合 WAF 的配置方式请参考:
- 最佳实践 · API 网关结合 WAF 提供安全防护:https://cloud.tencent.com/document/product/628/48326
随着互联网产品的兴起,Web 攻击的手段越来越多样,腾讯云 API 网关也将不断修炼安全防护能力,争取为应用开发者们提供业内最安全的网关产品。
直播预告,参与有礼 🎁
参与直播互动,将有机会 免费获得 腾讯视频 VIP 月卡 1 张!
9 月 27 日,晚 7 点见!
推荐阅读
One More Thing
欢迎进入千人 QQ 群 (871445853) 交流 Serverless!
- GitHub: github.com/serverless
- 官网: cloud.tencent.com/product/serverless-catalog
点击「阅读原文」,即可预约参加 9.27 晚 7 点直播,干货满满,不容错过!