Swagger API接口说明屏蔽
· API接口列表保护
· 使用 API 网关
API接口最简单,也最容易被忽视。很多人写完接口后,忘记删除API接口列表,或者为了方便别人调用API接口,去写了一个说明文档,结果这个接口没加权限,导致黑客上去随便一扫,就可以发现这个API列表。
这个列表拿下来之后,攻击所有的API,尝试一遍,将所有不需要传参或者传参比较简单的API全部攻击一遍之后,就会导致数据泄露或者数据出问题。
API为什么容易被攻击?因为API直接连到数据库,API的访问是直接跟数据库进行交互。通过API访问的所有请求ip地址全部是服务器,导致你在监控层面很难去发现这出了什么问题,岂不知道黑客已经站在API服务器上去打数据库服务器了。所以API也是很关键的,一定要去保障它的安全。
在API的管理方面,第一个要分权:
API访问权限控制
· 增删改查API需要单独确权(Auth2.0 Token验证)
查询的就只能去查询,只能去get,而不能去post,需要修改的,可能有post权限,但一定没有delete权限。
· API访问审计(日志)
Token授权机制、时间戳超时机制<使用配额和限流>、API加密签名机制 。这里专门拿一张图来说明Token授权
API没有办法去做登录验证,合理使用Token增加API安全的基础。
API版本安全
不同版本API直接兼容及信息保护。
因为我们的API通常会开发1.0版本、1.1版本、2.0版本、2.2版本...每一个版本对应的客户端可能不同,比如说1.1版本对应的是app的1.0版本,到了2.0的时候对应的app的4.0、5.0,这个时候客户端的app可能有低有高,有不同的版本。导致API不能高版本一上线、低版本立即下线,这个时候兼容性以及信息保护就需要提到日程上。不能出现低版本的客户端可以访问高版本的数据、高版本的客户端可以访问更低版本客户端的数据,通过这种迂回的绕过,导致API中的数据暴露出来。