越權問題:
描述:在使用 api 請求訂單詳情接口時,一般我們是傳遞訂單id 來獲取該訂單的內容。但是會存在一個問題:當用戶手動去變更訂單id 參數來請求接口數據時,會獲取到不屬於他的數據,這就產生了越權。
解決辦法: 根據訂單id 查詢到對應的user_id 對當前登錄用戶的id 和查詢到的user_id 進行一致性判斷,如果不一致,則返回操作越權。
示例代碼:
public function orderAuth($order_id){
$userInfo = new User();
$user_id = Order::where('id',$order_id)
->value('uid');
if($userInfo->id !== $user_id){
throw new \Exception('越權行爲');
}
}
$this->orderAuth($order_id);//驗證授權