判断用户是否有权限访问

发布于 2022-09-04 21:45:34 字数 225 浏览 19 评论 0

有个问题:一般通过url参数 查询数据的时候,是通过id 来查询数据
比如要查询一个订单详情,那么这个id 就是订单详情表的id

"http://localhost/index/order/detail/id/3.html"

那么我是不是可以改变这个id 就能查询到别人的订单详情了呢?
我做订单详情的时候是不是还要判断是否这个客户的订单?每次都判断会不会很麻烦?
还是使用订单号查询?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

苏辞 2022-09-11 21:45:34

当有个id被传到后台后 数据库查询的时候并不是只查询id=id这一个条件
会带上很多条件的,比如用户登录的uid , 或者session中存的用户账号什么的

当然你最好做一些sql防注入的东西,人家如果用id=1";这样的形式访问,你的sql就很危险。

眼中杀气 2022-09-11 21:45:34

权限的问题应该是后端判断吧,按照道理应该是前端传给服务器一个订单id(你这里是url传参),然后后端会去查表,然后返回数据给前端。对于权限这个问题,后端可以在收到前端的接口调用信息之后,先判断用户是否有调用这个接口的权限,如果有(且逻辑数据合理等),返回数据,如果没有,就直接返回没有权限访问,这样去控制。

如梦亦如幻 2022-09-11 21:45:34

真实的订单是有混淆性的,请求时并不是真的就是数据表的主键字段,所以你这个要自己改改

笨笨の傻瓜 2022-09-11 21:45:34

查看订单详情至少需要两个参数,订单id及当前用户id。后端首先应该先判断是否正确接收到这两个参数,然后根据订单id查找到相应的订单信息,再将当前用户id与订单信息中的下单用户id匹配,不一致则提示无权访问。

ゃ人海孤独症 2022-09-11 21:45:34

查询订单的时候应该是:

select * from 订单表 where id="id" and uid="uid"; 
清泪尽 2022-09-11 21:45:34

1.不能同id作为订单查询的依据,比如用uuid
2.订单的表的里面有当前订单数据哪个客户的字段,查询的时候带上这个条件

用户UID与订单ID 为 && 关系。

短暂陪伴 2022-09-11 21:45:34

1.首先判断该用户是否处于登录状态,获取session来判断;
2.根据用户id来判断是否有权限访问该订单详情。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文