suchen

Heim  >  Fragen und Antworten  >  Hauptteil

php - 判断用户是否有权限访问

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

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

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

仅有的幸福仅有的幸福2806 Tage vor800

Antworte allen(8)Ich werde antworten

  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:03:46

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

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

    Antwort
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:03:46

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

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 13:03:46

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

    Antwort
    0
  • PHPz

    PHPz2017-05-16 13:03:46

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

    Antwort
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:03:46

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

    Antwort
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:03:46

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

    Antwort
    0
  • 黄舟

    黄舟2017-05-16 13:03:46

    查询订单的时候应该是:

    select * from 订单表 where id="id" and uid="uid"; 

    Antwort
    0
  • PHPz

    PHPz2017-05-16 13:03:46

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

    Antwort
    0
  • StornierenAntwort