公司是做招聘平台的,在招聘方的管理后台,可以看到投递者的简历并且有一个“下载简历”按钮。昨天接到个小需求,描述是“限制所有从crm跳转至商家后台的BD人员下载职位简历”。
找到相关权限代码,大概逻辑如下:
//权限验证代码
protected function canDownload(){
if (isset($_COOKIE['loginFrom'])) {
return $_COOKIE['loginFrom'] == 'crm'
}
return false
}
// 接口
if (canDownload()) {
//通过验证
}
本能的感觉不对劲,于是打开浏览器登录了一个测试账号,权限是普通商家,在console里输入document.cookie,发现没有loginfrom这个cookie字段,于是继续输入:
document.cookie = 'loginfrom=crm'
刷新页面后,页面上不出我所料的出现了“下载简历”按钮,点击后发出的请求也能通过验证。
也就是说只需要在本地修改一下cookie,任何人都可以下载求职者的简历,后台的权限有漏洞,原因是使用cookie控制权限。
这里有几个可以改进的方