当前位置: 首页 > news >正文

安全测试,接口返回内容遍历~

最近公司被人大量爬取数据,查了一下发现,用户主页接口,没有加用户登录校验,返回了用户的敏感信息有手机号和邮箱,其实这个接口是用不到这些信息的。再加上用户id是自增长的,所以很容易被别人爬取。

既然这个接口返回的敏感信息是不必要的,所以第一步:隐藏接口返回敏感信息。由开发完成。

反过来看,测试人员除了测试确保被暴露的接口修改返回信息,没有影响业务功能后,还能做什么呢?这个时候,接口自动化的重要性就体现了。

写了一个遍历的方法,遍历项目里所有的接口返回是否包含敏感信息,如果有返回敏感信息,则返回接口URI,body及敏感字段名,方便判断是否必要调整。

def get_all_keys(uri,body,json_obj):keys_set = set()def extract_keys(obj):if isinstance(obj, dict):keys_set.update(obj.keys())for value in obj.values():extract_keys(value)elif isinstance(obj, list):for item in obj:extract_keys(item)extract_keys(json_obj)strArr = "{'idCard', 'IDCard', 'idNo', 'mobile', 'phone', 'tel', 'email', 'cardNumber'}"common_elements = set(keys_set) & set(eval(strArr))if len(common_elements)!=0:return uri,body,list(common_elements)

之后在每个接口脚本调用这个方法,即可。最后在接口测试报告里找一下出错的接口,就可以直观的发现哪些接口存在安全隐患。如下面的测试报告,可以看到fail的用例,因为这个接口返回了mobile和email两个敏感信息。

http://www.lryc.cn/news/222374.html

相关文章:

  • 【GIS】地理坐标系与投影坐标系的区别
  • 太细了:美团一面连环夺命20问,搞定就60W起
  • 休眠和睡眠有哪些区别?如何让电脑一键休眠?
  • Kibana使用Timelion根据时间序列展示数据
  • 基础:JavaScript的怪癖之一:提升(Hoisting)
  • 前端特殊字符转码
  • Python开发运维:Python3.7安装Django3.2
  • B站双11,联手天猫暴涨2亿消费新势力
  • 如何选择SVM中最佳的【核函数】
  • RT-Thread的构建与配置系统
  • 合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(一)
  • Git的简介以及基本使用
  • django安装数据库
  • springboot--外部环境配置
  • 『MySQL快速上手』-④-表的操作
  • 2023年10月Web3行业月度发展报告区块链篇 |陀螺研究院
  • 【TES745D】青翼自研基于复旦微的FMQL45T900全国产化ARM核心模块(100%国产化)
  • 初次给外贸客户发邮件范文
  • C语言中的多种形式的循环结构
  • 7天入门python系列之第二天python 基础语法
  • 【星海出品】flask 与docker
  • Oracle的to_date()函数解决sql语句日期格式问题
  • Vue实现面经基础版案例(路由+组件缓存)
  • uniapp打开外部链接方式
  • SecureCRT安装、注册教程
  • 音乐免费下载mp3格式+音频格式转换+剪辑音频+合并音频教程
  • 腾讯云16核服务器配置有哪些?CPU型号处理器主频性能
  • 什么是屏蔽机房?
  • wsl2 ubuntu22.04安装docker
  • 【Java SE】详解数组