有個問題:一般透過url參數 查詢資料的時候,是透過id 來查詢資料例如要查詢一個訂單詳情,那麼這個id 就是訂單詳情表的id
"http://localhost/index/order/detail/id/3.html"
那我是不是可以改變這個id 就能查詢到別人的訂單詳情了呢? 我做訂單詳情的時候是不是還要判斷是否這個客戶的訂單?每次都判斷會不會很麻煩? 還是使用訂單號碼查詢?
當有個id被傳到後台後 資料庫查詢的時候並不是只查詢id=id這一個條件會帶上很多條件的,比如用戶登錄的uid , 或者session中存的用戶帳號什麼的
當然你最好做一些sql防注入的東西,人家如果用id=1";這樣的形式訪問,你的sql就很危險。
權限的問題應該是後端判斷吧,按照道理應該是前端傳給伺服器一個訂單id(你這裡是url傳參),然後後端會去查表,然後回傳資料給前端。對於權限這個問題,後端可以在收到前端的介面呼叫資訊之後,先判斷使用者是否有呼叫這個介面的權限,如果有(且邏輯資料合理等),回傳數據,如果沒有,就直接回傳沒有權限訪問,這樣去控制。
真實的訂單是有混淆性的,請求時並不是真的就是數據表的主鍵字段,所以你這個要自己改改
查看訂單詳情至少需要兩個參數,訂單id及目前用戶id。後端首先應該先判斷是否正確接收到這兩個參數,然後根據訂單id查找到相應的訂單信息,再將當前用戶id與訂單信息中的下單用戶id匹配,不一致則提示無權訪問。
1.不能同id作為訂單查詢的依據,比如用uuid2.訂單的表的里面有當前訂單數據哪個客戶的字段,查詢的時候帶上這個條件
用戶UID與訂單ID 為 && 關係。
查詢訂單的時候應該是:
select * from 订单表 where id="id" and uid="uid";
1.首先判斷該使用者是否處於登入狀態,取得session來判斷;2.根據使用者id來判斷是否有權限存取該訂單詳情。
當有個id被傳到後台後 資料庫查詢的時候並不是只查詢id=id這一個條件
會帶上很多條件的,比如用戶登錄的uid , 或者session中存的用戶帳號什麼的
當然你最好做一些sql防注入的東西,人家如果用id=1";這樣的形式訪問,你的sql就很危險。
權限的問題應該是後端判斷吧,按照道理應該是前端傳給伺服器一個訂單id(你這裡是url傳參),然後後端會去查表,然後回傳資料給前端。對於權限這個問題,後端可以在收到前端的介面呼叫資訊之後,先判斷使用者是否有呼叫這個介面的權限,如果有(且邏輯資料合理等),回傳數據,如果沒有,就直接回傳沒有權限訪問,這樣去控制。
真實的訂單是有混淆性的,請求時並不是真的就是數據表的主鍵字段,所以你這個要自己改改
查看訂單詳情至少需要兩個參數,訂單id及目前用戶id。後端首先應該先判斷是否正確接收到這兩個參數,然後根據訂單id查找到相應的訂單信息,再將當前用戶id與訂單信息中的下單用戶id匹配,不一致則提示無權訪問。
1.不能同id作為訂單查詢的依據,比如用uuid
2.訂單的表的里面有當前訂單數據哪個客戶的字段,查詢的時候帶上這個條件
用戶UID與訂單ID 為 && 關係。
查詢訂單的時候應該是:
1.首先判斷該使用者是否處於登入狀態,取得session來判斷;
2.根據使用者id來判斷是否有權限存取該訂單詳情。