Stworzyłem skrypt rejestracji z hashowaniem hasła password_hash(). Pod spodem jest skrypt logowania. Jednakże teraz nie mogę zrobić bindValue na zmiennej $password. Czy taki kod jest bezpieczny? Jak się to ma do SQL Injection?
{ try { $pdo = new PDO($pol, $user, $pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo->prepare('SELECT * FROM users WHERE login = :login'); $stmt -> bindValue(':login', $login, PDO::PARAM_STR); //$stmt -> bindValue(':password', $pass_hash, PDO::PARAM_STR); $stmt -> execute(); //print_r($_POST); $row = $stmt->fetch(PDO::FETCH_OBJ); //print_r($row); $pass = $row->password; $usr = $row->login; //print_r($pass); echo '<br/>'; print_r($usr); echo '<br/>'; if(password_verify($password, $pass) && $login === $usr) { $_SESSION['logged'] = true; $_SESSION['login'] = $login; } else { } $stmt->closeCursor(); } catch(PDOException $e) { } }