应用程序编程接口(API)为开发人员和网站所有者提供现有应用程序的源代码,这些源代码可以根据他们(开发人员)的特定需求进行重新定位,并集成到现有业务和网站功能中,以改善用户体验。
简而言之,API已经成为在线业务的基本要素,而任何基本要素很快就会成为恶意攻击者的攻击目标。
如果你是一名开发人员,或者你正在站点上的各种应用程序中使用API,下面是一些最常见的API漏洞,它们是如何被锁定的,以及你可以做些什么来帮助缓解它们的潜在危害。
代码注入
对于攻击者来说,使用代码注入是最常用的命令API的方法,可以让它执行你或你的客户不希望他们做的所有事情。最常见的代码注入包括SQL,XML,RegEx和API,它们向应用程序发送命令以执行诸如共享敏感的用户数据、密码和其他身份验证信息之类的操作,并在设备上植入恶意软件和间谍软件。
InMotion Hosting
InMotionHosting是成立于2001年的美国虚拟主机商,InMotionHosting是美国最好的针对中小型客户和电子商务网站的主机空间服务商之一。
确保API不受代码注入影响的最佳方法之一是执行手动测试,特别是密集的查询检查,以确定是否有恶意的人会将恶意代码插入应用程序,以及如何插入。
重复请求攻击
此漏洞适用于那些允许攻击者重复请求的API,当识别和拒绝第一个不值得信任的请求后,API没有被设计成禁止未来的请求时,就会发生这种情况。
对API的设计通常是这样的:虽然它们能够成功地拒绝最初的可疑请求,但它们不会阻止同一恶意行为者继续发出不同的请求。
这些类型的暴力攻击通常用于探测漏洞,并且可以通过在策略上设置速率限制,使用HMAC身份验证,使用多因素身份验证或使用寿命较短的OAuth访问令牌来加以防范。
请求伪造攻击
当黑客试图使用经过身份验证的web应用程序(如API)进行更改电子邮件地址或从一个银行账户向另一个银行账户汇款等操作时,就会发生请求伪造攻击或跨站点请求伪造攻击。这些攻击已经流行多年,并威胁了一些最大的互联网网站。
针对跨站点请求伪造的API最常见的方法是使用服务器生成的令牌,这些令牌作为“隐藏字段”放置在HTML代码中。每次发出请求时,这些都返回给服务器,以便服务器能够确定源是否经过身份验证,因此是可信的。随着越来越多的金融交易继续发生在网上,跨站点请求伪造攻击的风险也在增加。
受攻击的用户身份验证
API及其创建者并不总是能够确保身份验证机制正常运行或创建不正确,从而使API极易受到攻击。错误的身份验证机制允许黑客伪装成已认证用户的身份,然后他们可以造成各种各样的破坏。有时,所使用的身份验证系统不是很可靠,并且会意外泄露API密钥。
除OAuth外,加强身份验证过程的一种好方法是考虑使用时间戳记请求。可以将其作为自定义HTTP标头添加到任何API请求中,从而强制服务器比较当前时间戳和请求时间戳。仅当服务器得出两个时间戳都在几分钟之内的结论时,身份验证才有效。
总结
API是主要目标,因为使用相对简单的过程可以造成很大的损害。因此,那些构建和使用API的人需要采取必要的预防措施,以确保他们和他们的客户的信息不会受到上述常见API漏洞的威胁。
本文翻译自:https://www.hackread.com/the-most-common-api-vulnerabilities/