前端敏感信息泄露?

2019-11-05 11:07:38 +08:00
 Graves
项目很旧了,2014 年的代码,没有前后分离,后端是 status2+jsp,没有 spring
因为是政府项目,所以公司找了第三方信息安全公司,做了渗透测试
现在有一个很头疼的问题,假如有一个用户列表,列表里面有个详细按钮,按钮下面是用户的 id,点击就查询出用户的详细信息,现在第三方信息安全公司改了这个用户 id,就可以获取到其他用户的信息
这个问题是可以在后端校验,但是代码太旧了,想问问还有其他办法吗
3085 次点击
所在节点    问与答
26 条回复
goodname
2019-11-05 11:13:35 +08:00
这是典型的越权啊,前端校验会被绕过啊,不改后端的话,请楼下老哥回答吧
littleylv
2019-11-05 11:18:45 +08:00
如果不需要限制可以看到哪个或哪些用户的详细信息,那这个并没有风险,因为反正你可以看到所有人的信息(反正你可以点列表 id=2 的人看,你通过把 id=1 改成 id=2 去看的方法不是绕一圈没必要么)

如果有限制的话,一定要在后台限制校验传入的 id 是否有权限看
Graves
2019-11-05 11:19:37 +08:00
@goodname 我想到了一个骚操作,因为是 jsp,我把列表 list 放到 session 域下面,然后按钮放数组的下标,到了详细页面的时候再 session 域取出列表,根据下标获取 id,不知道这么做会有什么问题
Graves
2019-11-05 11:21:04 +08:00
@littleylv 是有权限的,但是祖传代码我改不动,放上去生产,立马用户炸电话过来
yikyo
2019-11-05 11:26:30 +08:00
id 加密也可以解决。
littleylv
2019-11-05 11:29:22 +08:00
@yikyo #5 我也想过后端把 id 可逆加密,前端传进来后解密,但硬要说的话还是有风险。比如 A 用户有权限看到 id=1 (加密成了 ABC ),但 B 用户没权限;但如果 B 用户拿到了 ABC,同样可以去看到 id=1
maichael
2019-11-05 11:38:00 +08:00
既然能筛出列表就说明有权限,有权限就直接根据权限判断不就好了么,建议直接改祖传代码吧,想办法绕只会挖更多的坑。
Graves
2019-11-05 11:38:01 +08:00
@littleylv 嗯嗯,我也想过这个,后面觉得不可行
Graves
2019-11-05 11:40:04 +08:00
@maichael 老哥说的也是,实在不行我只能在 sql 最后面 in(列表)
sevenzhou1218
2019-11-05 12:10:40 +08:00
这个跟前端没关系啊,服务器端代码需要改啊。
前端能做的就是传两个参数,id 和 hash,hash 是 id 和 secretKey 加密来的,服务器端再解一下...
imn1
2019-11-05 12:22:43 +08:00
始终要改后端
简单的就是 id 变无序,是 hash 值,这样前端难以碰撞
鉴权才是根本
harvies
2019-11-05 12:37:59 +08:00
服务器需要校验当前用户是否有查看该 ID 数据的权限
EminemW
2019-11-05 12:59:00 +08:00
我看到的第一眼竟然觉得没有问题。。用户列表根据 id 查详情,不是正常操作吗。
iyaozhen
2019-11-05 13:11:55 +08:00
典型的水平越权嘛 老代码有啥改不动的,对比一下传的 id 是不是当前用户的 ID
shehuizhuyi
2019-11-05 13:28:32 +08:00
根据 session 查
nnnToTnnn
2019-11-05 16:03:14 +08:00
如果是为了应付渗透测试的人可以很好的解决这个,重写页面传值的那个方法,进行对称加密,例如 aes 等等,你随便找个加密算法,然后在点击的在加上另外一个参数 tempid,传过去,判断 tempid 是否和 id 相等,如果是相等则判断是人为修改。


如果不是 ajax 请求,而是 jsp 请求,直接加上一个 tempid 作为一个暗桩就行了。

如果是为了对付国内的渗透测试水平我觉得问题还是不大的
nnnToTnnn
2019-11-05 16:04:29 +08:00
@nnnToTnnn 不是 ajax 请求,而是用 request 传参数,基本上 aes 加密都不用,直接留下 tempid 暗桩。等等
nnnToTnnn
2019-11-05 16:07:31 +08:00
@nnnToTnnn 还不需要怎么修改祖传的代码,只要稍微加个字段就行,easy
wccc
2019-11-05 17:00:28 +08:00
Strus2? 我在想 jar 升级过没.. 毕竟漏洞挺多的
goldenalex
2019-11-05 17:09:11 +08:00
胡乱猜测。。。

加个加密 session 比对后传输信息?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/616373

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX