[英]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.