接口安全检查: 是发现和消除事故隐患、落实安全措施、预防事故发生的重要手段。
重要检查对象:
身份校验: 接口是否登录才可访问。
案例: 有一个可通过手机号查询用户个人信息的接口,并且没有设置任何身份验证措施。 张三就可以根据手机号去获取到用户信息,再去倒卖盈利。
检查方法:
解决方案:
角色鉴权: 当前用户是否具有调用某个接口的权限,如果没有那就不能调用接口。比如root用户拥有系统的所有权限,可以对系统进行任何操作,但普通用户只有部分权限。
案例: 张三注册了一个网站用户,发现有个接口,只要传入用户账号,就能查询到此用户实名信息,张三就可以通过此接口倒卖信息获利。这就是没做权限限制,理应是管理员的权限才能调用的接口,普通用户也可以使用。
检查方法:
解决方案:
数据脱敏: 对敏感数据的隐藏、加密或替换,以确保数据在传输、存储和使用过程中的安全性。
案例: 张三发现某网站有个中奖榜单,会展示中奖用户的手机号和身份证号等信息,但这些信息都做了脱敏处理,无法获取到确切的信息。但他通过访问这个榜单的后台接口,发现Response中的数据没有脱敏,他就可以以此获取所有中奖人的信息,从而获利。
检查方法:
解决方案:
数据加密: 通过加密算法对接口传输的数据进行加密处理,以防止数据在传输过程中被窃取或篡改。
案例: 张三通过互联网系统漏洞,获取到某服务器 A 的权限,通过 ARP 欺骗,模拟网关,抓取整个网段的网络流量,发现某些系统未使用 https 加密传输,分析 http 流量收集到大量用户账号信息等,整理收集到的信息生成定制化字典,对其他服务器进行爆破攻击,最终获取到核心服务器权限,造成严重安全事故
检查方法:
解决方案:
请求频率限制: 输错密码5次就得再等一段时间才能再次尝试,防止频繁访问降低系统性能。
检查方法:
解决方案:
spring-boot-starter-aop
和spring-boot-starter-cache
来实现接口的频率限制名词 | 说明 |
---|---|
基本资料 | 个人姓名、生日、性别、民族、国籍、家庭关系、住址、个人电话号码、电子邮件地址等 |
身份信息 | 身份证、军官证、护照、驾驶证、 工作证、出入证、社保卡、居住证等 |
生物识别信息 | 个人基因、指纹、声纹、掌纹、耳廓、虹膜、面部识别特征等 |
网络身份标识信息 | 个人信息主体账号、IP 地址、个人数字证书等 |
健康生理信息 | 个人因生病医治等产生的相关记录,如病症、住院志、医嘱单、检验报告、手术及麻醉记录、护理记录、用药记录、药物食物过敏信息、生育信息、以往病史、诊治情况、家族病史、现病史、传染病史等,以及与个人身体健康状况相关的信息,如体重、身高、肺活量等 |
教育工作信息 | 个人职业、职位、工作单位、学历、学位、教育经历、工作经历、培训记录、成绩单等 |
财产信息 | 银行账户、鉴别信息(口令)、存款信息(包括资金数量、支付收款记录等)、房产信息、信贷记录、征信信息、交易和消费记录、流水记录等,以及虚拟货币、虚拟交易、游戏类兑换码等虚拟财产信息 |
通信信息 | 通信记录和内容、短信、彩信、电子邮件,以及描述个人通信的数据(通常称为元数据)等 |
联系人信息 | 通讯录、好友列表、群列表、电子邮件地址列表等 |
个人上网记录 | 指通过日志储存的个人信息主体操作记录,包括网站浏览记录、软件使用记录、点击记录、收藏列表等 |
常用设备信息 | 包括硬件序列号、设备 MAC 地址、软件列表、唯一设备识别码(如 IMEI/Android ID/IDFA/OpenUDID/GUID/SIM 卡 IMSI 信息等)等在内的描述个人常用设备基本情况的信息 |
个人位置信息 | 行踪轨迹、精准定位信息、住宿信息、经纬度等 |
其他信息 | 婚史、宗教信仰、性取向、未公开的违法犯罪记录等 |