重庆建设安全员信息网站,临沂做过网站的公司,商城网站管理系统,wordpress注册数学验证最近公司被人大量爬取数据#xff0c;查了一下发现#xff0c;用户主页接口#xff0c;没有加用户登录校验#xff0c;返回了用户的敏感信息有手机号和邮箱#xff0c;其实这个接口是用不到这些信息的。再加上用户id是自增长的#xff0c;所以很容易被别人爬取。
既然这…最近公司被人大量爬取数据查了一下发现用户主页接口没有加用户登录校验返回了用户的敏感信息有手机号和邮箱其实这个接口是用不到这些信息的。再加上用户id是自增长的所以很容易被别人爬取。
既然这个接口返回的敏感信息是不必要的所以第一步隐藏接口返回敏感信息。由开发完成。
反过来看测试人员除了测试确保被暴露的接口修改返回信息没有影响业务功能后还能做什么呢这个时候接口自动化的重要性就体现了。
写了一个遍历的方法遍历项目里所有的接口返回是否包含敏感信息如果有返回敏感信息则返回接口URIbody及敏感字段名方便判断是否必要调整。
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两个敏感信息。