开发规范:API安全
API是现代移动、SaaS和web应用程序的关键组成部分,可以应用在面向客户、合作伙伴和内部应用程序中。API可以暴露应用程序逻辑和敏感数据。不安全的API很容易成为黑客攻击的目标,使他们能够访问安全的服务器或网络。攻击者可以试图执行中间人攻击(MITM)、分布式拒绝服务攻击(DDoS)、注入或破坏访问控制等攻击。
以下是一些通用的API安全建议:
API 资产管理
列出并记录应用程序的所有接口。
必须了解API的暴露及别了解这些信息将有助于更好地定义哪些API安全控制必须加强,哪些必须使用默认的安全设置:
-
内部API:内部访问的API,无需暴露在因特网,通过内部服务、后端/员工应用程序或合作伙伴通过VPN或其他安全手段在内部访问。
-
外部API:暴露在互联网上的API,外部用户可以访问,不管他们是合作伙伴还是客户端。
对于API本身,我们可以根据以下几点对API进行分类:
- 应用程序是由内部团队开发的还是由第三方合作伙伴开发的?
- 应用程序是由另一个API/后端应用程序访问还是由前端应用程序访问?
不支持的版本:
- 除了发布到互联网上的当前API版本之外,API不能有任何其他版本,任何特性都必须包含到最新的版本中,以符合最新的安全需求和最佳实践。
- 较旧的和开发版本的API必须只能在开发环境中访问,在开发环境中不能使用任何真实的客户数据。
授权安全
- 接口只能通过系统服务帐户运行,而不能通过任何个人帐户运行。
- API密钥身份验证:内部API必须在所有场景中使用基于API密钥或其他类型的强身份验证,限制对每个端点的访问的方式,即使攻击者