接口安全测试检查项小结

1、接口参数不能是密码明文。
2、需要输入密码做授权校验的操作接口,必须有次数限制,防止对方暴力破解。
3、接口不能返回和功能无关的字段,尤其是密码等敏感字段。
4、不能发布没有使用的接口。
5、控制台和日志均不能打印出密码明文。
6、用户不能进行自己无权限的操作,以某修改操作为例:
user1、user2分别具有只属于自己的表单item1、item2,user1修改自己表单接口modify/user1/item1
验证项:user1用户不能通过拼接接口or拼接传入参数的方式实现以下功能
modify/user1/item2
modify/user2/item1
modify/user2/item2
注:user1进行以上操作的时候都需要在日志中warning记录
7、复杂事务流程不能跳过某项流程
某个事务流程是A->B->C->D才能完成
验证项:A->B->D
A->C->D
B->C->D
不同组合,验证事务要拒绝或者并且将状态重置回初始状态
注:出现以上操作的时候都需要在日志中warning记录
8、上传文件接口,如果只能上传图片,不可以上传其他文件或者伪装成图片的可执行文件
注:出现以上操作的时候都需要在日志中warning记录
9、接口不可以有可sql注入的机会,以读和修改为例:
list/userId=1
验证项:
取反:list/userId=1 and 1=2
数字型:list/userId=1 and 1=1
字符型:list/userId=1' and 1=1 and '1'='1
字符型:list/userId=1'  and 1=1#
字符型:list/userId=1'  and 1=1--
搜索型:list/userId=1%' and 1=1 and '%'='
判断以上接口是否按照预期返回(接口错误正常捕获or只返回 getUser/id=1,不能出现打印e.printStackTrace()类的输出)
10、写接口需要防止用户传入字符过长,造成溢出
11、写接口不能写入可造成XSS攻击的内容,
验证项:<script>alert('1')</script>,看数据库是否把<>替换成其他字符&lt; &gt;或者被过滤掉

 



留言