[英]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']."'"
);
Where as I want to put check that will let me know that session id is match with uid. 我想放在哪里检查,让我知道会话ID与uid匹配。 It would be in sender_id or reciever_id.
它将在sender_id或reciever_id中。
Too long for a comment, beyond what tadman said (You're at severe risk of SQL injection attacks), this query is left way too open. 除了tadman所说的(您有遭受SQL注入攻击的严重风险)之外,对此发表评论的时间太长了,这个查询太开放了。
You have this matching when any of these conditions exist: 存在以下任何一种情况时,您具有此匹配项:
Condition 1: When sender_id = $_SESSION['RVuser'] 条件1:当sender_id = $ _SESSION ['RVuser']
Condition 2: When receiver_id = $_SESSION['RVuser'] AND sender_id = $_GET['uid'] 条件2:当receiver_id = $ _SESSION ['RVuser']和sender_id = $ _GET ['uid']
Condition 3: When receiver_id = $_GET['uid'] 条件3:当receiver_id = $ _GET ['uid']
So all it would take is for someone to load your page with ?uid=#
to get information because of condition 3. 因此,由于情况3,某人将您的页面加载为
?uid=#
即可获取信息。
Always sanitize vulnerable inputs! 始终清洁易受伤害的输入! I'm assuming you're using MySQLi in my example.
我假设您在示例中使用的是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
}
Please provide error details so we can provide more of an answer. 请提供错误详细信息,以便我们提供更多答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.