HTTP 简洁权限设计,防止私有资源被访问

2015-04-16 07:36:34 +08:00
 jedrek
比如 /topic/1 ,这个是私有资源,如何才能防止已经登录的其他人访问 /topic/1 这个资源?

这里所说 http://www.cnblogs.com/hnsongbiao/p/3752617.html
第二点,确实能看似“完美”做得到,但是这已经是将安全、权限的控制,带到了业务中,我觉得也不是太合理。

你们是怎么设计的 ?
2956 次点击
所在节点    问与答
10 条回复
Septembers
2015-04-16 07:41:30 +08:00
无权访问应当响应401 Unauthorized
Septembers
2015-04-16 07:44:37 +08:00
权限系统 纵横的 不仅要垂直权限 也需要设计水平权限
你的提问中明显可以看出没有水平权限的设计
babyname
2015-04-16 07:48:05 +08:00
最简单的 如果是私有 不考虑用户角色和组的情况下,对比资源作者和登录用户是否匹配
p1n3
2015-04-16 08:23:50 +08:00
这个懒偷不得的,在 /topic/1 验证当前登陆用户的session
caixiexin
2015-04-16 09:06:15 +08:00
一直以来开发都是用文章里的“修复方案2”,这好像比较符合开发的习惯性思维.
还有文章里的“修复方案3”用token的方式,如果是网页的ajax或表单请求,token=md5(addressId+sessionId+key)这个生成方式应该是暴露在前端的js中的吧,那如果addressId还是自增id的形式,这个生成token好像没啥意义,知道生成方式后一样改个addressId生成token,是不是也能通过token校验?
yakczh
2015-04-16 09:13:46 +08:00
权限设置是集中到一个配置文件好呢,还是象yii那样分散到每个action里面好呢?
jedrek
2015-04-16 09:25:49 +08:00
@caixiexin 方案3还是有值得思考的地方的,暴露是一个。另一种情况是已经登录的情况下,直接在url中访问属于当前用户的另一个资源,那这个addressId就没有了,也就访问不到了。
caixiexin
2015-04-16 09:32:37 +08:00
@jedrek 我觉得想利用漏洞的人,应该不会仅限于改个url,最起码也会F12看下js里的认证逻辑嘛。不是有句话叫:“用户永远是最不安全不可控的一个环节”:)
sanddudu
2015-04-16 11:01:04 +08:00
@caixiexin 还有永远不要信任用户输入
otakustay
2015-04-16 12:30:26 +08:00
权限本来就是一种业务啊,当然会带到业务中来

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

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

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

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

© 2021 V2EX