我之前发过类似的帖子,但是这次请关注以下内容:
有人告诉我一种进行SQL注入的方法是使用"1=1",这样就可以看到所有不属于他们的条目。
但是如果我构建查询语句将当前用户的user_id也选出来,这样行得通吗?
$userid = Current users stored id in database;
$postid = mysql_real_escape_string($_GET['id']);
现在让我们假设我输入了:domain.com/page.php?id='' OR '1'='1'
Select article_name from table where user_id=$userid and post_id=$postid
如果我添加了User_id
限制,查询是否仍会返回所有内容?
$stmt->bindValue(':userid', $userId, PDO::PARAM_INT);
- Mike PurcellPDO::prepare()
页面上,它说“通过消除手动引用参数的需要,有助于防止SQL注入攻击。”这表明PDO处理字符串而不是整数,正如您之前提到的。为了安全起见,我会编辑我的帖子。 - Bailey Parker