搜尋

首頁  >  問答  >  主體

php - 判斷使用者是否有權限訪問

有個問題:一般透過url參數 查詢資料的時候,是透過id 來查詢資料
例如要查詢一個訂單詳情,那麼這個id 就是訂單詳情表的id

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

那我是不是可以改變這個id 就能查詢到別人的訂單詳情了呢?
我做訂單詳情的時候是不是還要判斷是否這個客戶的訂單?每次都判斷會不會很麻煩?
還是使用訂單號碼查詢?

仅有的幸福仅有的幸福2756 天前777

全部回覆(8)我來回復

  • 给我你的怀抱

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

    當有個id被傳到後台後 資料庫查詢的時候並不是只查詢id=id這一個條件
    會帶上很多條件的,比如用戶登錄的uid , 或者session中存的用戶帳號什麼的

    當然你最好做一些sql防注入的東西,人家如果用id=1";這樣的形式訪問,你的sql就很危險。

    回覆
    0
  • 仅有的幸福

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

    權限的問題應該是後端判斷吧,按照道理應該是前端傳給伺服器一個訂單id(你這裡是url傳參),然後後端會去查表,然後回傳資料給前端。對於權限這個問題,後端可以在收到前端的介面呼叫資訊之後,先判斷使用者是否有呼叫這個介面的權限,如果有(且邏輯資料合理等),回傳數據,如果沒有,就直接回傳沒有權限訪問,這樣去控制。

    回覆
    0
  • 过去多啦不再A梦

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

    真實的訂單是有混淆性的,請求時並不是真的就是數據表的主鍵字段,所以你這個要自己改改

    回覆
    0
  • PHPz

    PHPz2017-05-16 13:03:46

    查看訂單詳情至少需要兩個參數,訂單id及目前用戶id。後端首先應該先判斷是否正確接收到這兩個參數,然後根據訂單id查找到相應的訂單信息,再將當前用戶id與訂單信息中的下單用戶id匹配,不一致則提示無權訪問。

    回覆
    0
  • 曾经蜡笔没有小新

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

    1.不能同id作為訂單查詢的依據,比如用uuid
    2.訂單的表的里面有當前訂單數據哪個客戶的字段,查詢的時候帶上這個條件

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:03:46

    用戶UID與訂單ID 為 && 關係。

    回覆
    0
  • 黄舟

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

    查詢訂單的時候應該是:​​

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

    回覆
    0
  • PHPz

    PHPz2017-05-16 13:03:46

    1.首先判斷該使用者是否處於登入狀態,取得session來判斷;
    2.根據使用者id來判斷是否有權限存取該訂單詳情。

    回覆
    0
  • 取消回覆