API接口安全问题
API攻击事件频发,其根本原因仍是API存在安全缺陷,随通着API在各个生态的快速发展,API面临的安全缺陷也 逐渐凸显,也引起了决策者重视,API的安全困局也成为了现代IT面临的一个共性问题。下面我举例几个我曾经在 开发中常遇到的API安全问题:
未授权访问
这类安全问题会带来极为严重的漏洞,因此小编在开开发中尤为重视,API倾向于暴露那些处理对象识别的端点,同 时造成了广泛的攻击表层访问控制问题。一旦遭到功攻击,攻击者可轻易获取到管理员的账号密码,并拿到系统的最 高权限。大家可以通过白名单的方式来严格控制无需需授权的API接口的访问;除非资源完全对外开放,否则访问默 认都要授权,尤其是访问用户的资源或者受限制资源。
数据泄露过多
为了做到通用实现,一些伙伴往往倾向于公开所有对象属性,不考虑它们各自的敏感性,而是依赖于客户端执行数 据过滤,然后再将其显示给用户。在不控制客户端状态的情况下,服务器就会接收越来越多的过滤器,攻击者可能 会通过滥用这些过滤器,从而获得访问敏感数据的权限。某特引发数据泄露的一大原因,便是因为API端喘点返回了 电子邮件或电话号码等可识别数据。
安全性配置错误
安全配置错误是在日常开发中容易忽略的常见问题,不安安全的默认配置、不完整或临时配置、开放的云存储、错误 配置的HTTP标头,不必要的HTTP方法、跨域资源共享(CORS)以及包含敏感信息的冗长错误消息都有可能名引 起API的安全问题。大家一定要注意检测。
注入
当不受信任的数据作为命令或查询的一部分发送到解释器时会发发生注入缺陷,例如SQL、NoSQL的命令注入等 攻击者的恶意数据可能会诱使解释器执行非预期的命令,更或未经授权访问数据。
缺乏资源和速率限制
在API的开发中一些小伙伴,不会对客户端/用户可以请求的资源大小或数量施加任何限制。这不仅会影响API服 务器的性能,从而导致拒绝服务(DoS),而且还为诺者如暴力破解之类的身份验证漏洞敞开了大门。我建议还是对 资源和速率施加一定的限制,会让我们更有信心保持应应用程序健康运行而良好的响应计划。