簡體   English   中英

通過數據庫獲取結果的問題,其中會話ID登錄在用戶ID中,我將不得不檢查通過鏈接獲取的uid

[英]Issue with getting result by database where session id is logged in user id and I would have to check uid which i am getting by link

$getwhole_messages = $db->query("
SELECT * FROM `user_messages` 
WHERE `sender_id`='".$_SESSION['RVuser']."' ||
`reciever_id`='".$_SESSION['RVuser']."' &&
`sender_id`='".$_GET['uid']."' ||
`reciever_id`='".$_GET['uid']."'"
);

我想放在哪里檢查,讓我知道會話ID與uid匹配。 它將在sender_id或reciever_id中。

除了tadman所說的(您有遭受SQL注入攻擊的嚴重風險)之外,對此發表評論的時間太長了,這個查詢太開放了。

存在以下任何一種情況時,您具有此匹配項:

條件1:當sender_id = $ _SESSION ['RVuser']

條件2:當receiver_id = $ _SESSION ['RVuser']和sender_id = $ _GET ['uid']

條件3:當receiver_id = $ _GET ['uid']

因此,由於情況3,某人將您的頁面加載為?uid=#即可獲取信息。

始終清潔易受傷害的輸入! 我假設您在示例中使用的是MySQLi。

$select = sprintf("SELECT * FROM user_messages WHERE sender_id=%d || reciever_id=%d && sender_id=%d || reciever_id=%d;",
  $_SESSION['RVuser'],
  $_SESSION['RVuser'],
  $db->real_escape_string($_GET['uid']),
  $db->real_escape_string($_GET['uid'])
);

if($getwhole_messages = $db->query($select))
  // Prosess results
} else {
  // Output Query error
}

請提供錯誤詳細信息,以便我們提供更多答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM