開發中遇到的越權問題

越權問題:

描述:在使用 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);//驗證授權

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章