URL 参数保护有什么好办法

2018-11-27 23:27:06 +08:00
 wemore

项目中 URL 带了许多关键参数(这个没法改),稍微懂点电脑和英语的人都可以通过改变参数访问到他不该看到的东西(权限控制要改的话复杂度太大,系统设计在这方面考虑太少)。所以有什么方法加大被用户看到参数本身的难度?URL 编码算一个,POST 不考虑,希望他完全看不懂。加密的话项目需要 js 去获取 URL 参数来生成别的 URL 用,还要解密。有大佬有这方面的经验嘛==

6898 次点击
所在节点    C#
3 条回复
jookr
2018-11-27 23:38:49 +08:00
要么所有参数拼接混淆成可逆的传
要么带 token 和私钥 key,这个 token 等于所有参数加私钥 key 的用某种方法混成的最终字符串,别人就算改了其中的参数和 token 对不上也没用
honeycomb
2018-11-28 01:33:26 +08:00
常见做法是加签名,比如这样的:

参数按照字典排序+key 以后取 hash。
然后服务器给的 key 只有很短的有效期,比如只能用一次,或者只有几分钟的寿命(废弃的 key 可以丢到布隆过滤器,再发展下去就变成很常见的 APIkey+accesskey 模型了)。

这样至少可以杜绝直接改参数的攻击行为。
GDC
2018-11-28 01:51:12 +08:00
第一次看到以复杂度太大作为理由不改权限控制的… 改了参数就看到不该看的东西,不改权限改什么?
别人发个 hash 过的 url 给我,但我没权限也能打开咯?
把编码后的 url 添加到收藏夹中,过后没有权限了还是能看到咯?

如果你说 不能 会对解码后的参数做校验,那还是权限控制。

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

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

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

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

© 2021 V2EX