API 风险为何更隐蔽
现代网站、移动应用和物联网系统大量依赖 API。攻击者不一定破解登录系统,只需修改对象 ID、批量调用接口或利用未下线的旧版本,就可能访问不属于自己的数据。尤其要区分“用户已经登录”和“用户有权操作这个对象”,两者不是一回事。
对象级授权应在每一次读取、修改和删除操作中校验资源归属,不能依赖前端隐藏按钮。函数级授权还要限制普通用户访问管理接口。对请求体应采用允许列表,只接收业务明确需要的字段,避免批量赋值导致权限或状态被意外修改。
建立多层防线
网关层负责身份验证、速率限制、请求大小和超时;应用层负责细粒度授权、输入校验和业务规则;数据层执行最小权限。对登录、短信、搜索和导出等高成本接口,需要同时限制用户、IP、设备和业务对象维度的调用频率。
企业还应维护 API 清单,标注负责人、版本、数据等级和下线时间。日志要能关联用户、请求 ID、对象和结果,但不能记录密码、令牌等敏感信息。安全测试应进入 CI/CD,并对异常枚举、授权失败激增和资源消耗建立告警。
参考资料:https://owasp.org/API-Security/