横向越权
指攻击者尝试访问与他拥有相同权限的用户的资源,即同等级别的资源访问。如,一个用户试图访问其他用户的个人资料、尝试篡改其他用户的密码。
解决方法: 添加有有效期的token值标识,操作时比对。
解决案例:
Q:编码时将重置密码问题与重置密码分为两个接口编写,重置密码传入值为用户名及密码,用户修改密码时进行密保答题,在成功答题后可通过持有其他用户用户名对同级用户进行密码修改。
S:指提交答案时,若回答正确,则返回值中添加一个token,并传递给下一接口,在密码修改时,获取有有效期的token,比对成功后,才能够进行修改。
用户接口设计:
提交问题答案
request
username,question,anser
response
succese
{
"status": 0,
"data": "forgetToken"
}
fail
{
"status": 1,
"msg": "问题回答错误"
}
重置密码
request
username,passwordNew,forgetToken
response
succese
{
"status": 0,
"msg": "修改密码成功"
}
fail
{
"status": 1,
"msg": "修改密码操作失败"
}
或
{
"status": 1,
"msg&