我的代码容易受到SQL注入的影响


is my code vulnerable to SQL injection

我只想知道我的代码在SQL注入中是否容易受到攻击我有这个登录代码,我知道它是否可以安全使用以及是否可以防止任何 SQL 注入。

这是我的代码。

  <?php
  class LTID
  {
  private $db;
  function __construct($DB_con)
  {
    $this->db = $DB_con;
  }
  public function login($username,$password)
  {
    try
    {
        $stmt = $this->db->prepare("SELECT * FROM users WHERE username=:username LIMIT 1");
        $stmt->execute(array(':username'=>$username));
        $userRow=$stmt->fetch(PDO::FETCH_ASSOC);
            if($stmt->rowCount() > 0)
            {
                if(password_verify($password, $userRow['password']))
                {
                    $_SESSION['user_session'] = $userRow['user_id']
                    return true;
                }
                else
                {
                    return false;
                }
            }       
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
     }
   }
 }
 ?>

准备好的查询不受 SQL 注入的影响,因为这些值不会与 SQL 代码混合。

您正在使用PDO并且正在使用预准备语句,因此您的代码不容易受到SQL注入的攻击。

据我所知,密码也在数据库中进行了哈希处理,并且由于您使用password_verify来验证密码,因此我假设密码是用password_hash哈希的。

总的来说,你的代码看起来很安全