容易被忽略的API安全

      首先讲下为什么会想到这个主题。大概是8月下旬,应某SAAS应用服务商所邀交流企业安全建设相关话题。其背景就是近期出现的勒索事件,客户BOSS要求加强他们的安全建设。当聊到API安全的话题时客服竟突然一拍脑袋,表示API这块他们竟然忽略了,基础的WAF都没有上。当时我也很诧异每年信息化投入上千万的公司,都会有这方面的疏漏何况其他规模更小的客户呢!

什么是API

谈API安全之前我们要先搞懂什么是API,有过编程经验的人应该很好理解。应用编程接口(API)是一组用于构建和集成应用软件的定义和协议。

通过 API,无需了解实施原理,也能将您的产品或服务与其他的互通。这样可以简化应用的开发,节省时间和成本。在您开发新的工具和产品,或管理现有工具和产品时,强大灵活的 API 可以帮助您简化设计、管理和使用,并带来更多创新机遇。 API 有时被视为合同,而合同文本则代表了各方之间的协议:如果一方以特定方式发送远程请求,该协议规定了另一方的软件将如何做出响应。

比如c语言的fopen()函数来打开一个文件,感觉非常简单。 但是操作到底层是非常复杂的,打开文件需要扫描硬盘,找到我文件位置,然后读取部分数据,并放进i/o缓存中,放进内存。 这些数据都是0,1序列,还要对照ASCII表或者unicode表翻译成字符,再在显示器上显示出来。如果这个过程让程序员来完成,简直就是个噩梦。不可能的事。 怎么办呢? 操作系统就想了一个很好的办法。它预先把复杂的操作写在一个函数里面,编译成一个组件(一般是动态链接库)程序员只需要简单的调用这些函数就可以用完成复杂的工作。 这些封装好的函数就叫做API。 更加通俗讲:别人写好的代码,或者编译好的程序,提供给你使用,就叫作API。

API协议

最常见的当然是REST API ,但是API可不仅仅只有REST

 

API风险

 初步了解了API是什么有哪些。那么常见的API风险有哪些呢?我们看看OWASP Top 10列出的最受关注的API安全问题。

API安全实践

哪些手段可以有效的保障API的安全呢?以下总结了几点行业共识

 使用加密

为了防范破解类的攻击,我们需要对那些被用在内、外部通信的 API,使用 TLS 加密协议,并部署端到端的加密。

共享有限的信息

记住,您通过 API 共享出去的信息越少,API 自身的安全性风险就越小。同时,您也应当确保在错误消息中,披露的信息尽可能地少。 此外,使用 IP 地址的白名单与黑名单,是限制 API 资源访问的好方法。

认证

身份验证可以确保 API 不会被陌生人所直接使用。同时,通过 API 密钥或访问认证,我们可以踪调 API 资源的调用。当然,此类安全措施也会增加系统的实施难度。

持续监控、审计和日志记录

常言道,预防胜过弥补。我们可以在 API 设计之初,就设置好待监控与记录的指标;而在应用服务的使用过程中,通过适当的仪表板去跟踪 API 的交互,并及时审查相关记录与错误信息。同时,在后续的调试与版本更新环节,请不要忘记让所有的 API 都得以同步。

限流和配额保护

根据后端系统、实际带宽、以及服务器的运能,合理地限制有限数量的消息,去访问某些 API,进而能够有效地防范 DDoS 攻击的威胁。

有效的数据

服务器应当对接受到的所有内容,进行两次检查与验证。任何新增的内容、庞大的数据集、以及由消费端共享来的信息,都应当经过验证。目前,JSON 和 XML 验证是两种被用于检查参数安全性的最广泛工具。同时,它们也可以控制 SQL 注入、以及 XML 炸弹等事件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值