PHP/MySQL | PDO Запрос (безопасность)
Добрый, изучаю PDO в данный момент, а именно подготовленные запросы и прочее
if (isset($_POST['submit'])) {
$login = $_POST['login'];
$password= $_POST['password'];
}
$table = 'update user set login = ?, password = ?, sex= ? where id = ? limit 1';
$ssq = db::$pdo->prepare($table );
$ssq ->execute([$login, $password, $gender, ID]);
Переменную $login,$password фильтровать не обязательно в данном случае? Запрос ведь подготовленный получается.
Благодарю
if (isset($_POST['submit'])) {
$login = $_POST['login'];
$password= $_POST['password'];
}
$table = 'update user set login = ?, password = ?, sex= ? where id = ? limit 1';
$ssq = db::$pdo->prepare($table );
$ssq ->execute([$login, $password, $gender, ID]);
Переменную $login,$password фильтровать не обязательно в данном случае? Запрос ведь подготовленный получается.
Благодарю
Он подготовленный для базы, а вдруг пароль имеет 1 цифру, или логин существует?
Нужно максимально валидиловать, а потом только записывать значения в базу.
Нужно максимально валидиловать, а потом только записывать значения в базу.
AlertWeb , ты не понял, суть самого запроса, то что там проверки на логин и пароли есть это и так понятно
AlertWeb , имеется в виду не нужно ли применять всякие костыли типо htmlspecialchars real_escape_string и т д к $login = $_POST['login'];
________
посл. ред. 27.10.2023 в 14:07; всего 1 раз(а); by Drages
________
посл. ред. 27.10.2023 в 14:07; всего 1 раз(а); by Drages
Drages ,
________
посл. ред. 27.10.2023 в 14:09; всего 1 раз(а); by Менталист
if (isset($_POST['submit'])) {
$login = filter_var($_POST['login'], FILTER_SANITIZE_STRING);
$password = filter_var($_POST['password'], FILTER_SANITIZE_STRING);
}
________
посл. ред. 27.10.2023 в 14:09; всего 1 раз(а); by Менталист
Зачем? Просто в валидации убери так, чтобы пробелы не фигачили, типо trim() , запомни, валидируй любые мелочи, это ощутимо будет
Классно) интересно, может стоило ему сказать что существует ларка? )
Нет не надо. Если будут проблемы, можешь обернуть в конструкцию try/catch
try{
$stmt=$pdo->prepare(....);
$stmt->execute([...]);
}
catch(PDOException $e){
echo 'error: '.$e->getMessage();
}
try{
$stmt=$pdo->prepare(....);
$stmt->execute([...]);
}
catch(PDOException $e){
echo 'error: '.$e->getMessage();
}
дополнительно фильтровать не надо, он сам делает обвертку апострофами место ? = ''
исходя с этого оно не подходит для конструкций: select * from tablename order by ? limit ?
что при ордере, что при лимите не сработает, потому что заменит на order by 'id' и с лимитом limit '0', '10'
исходя с этого оно не подходит для конструкций: select * from tablename order by ? limit ?
что при ордере, что при лимите не сработает, потому что заменит на order by 'id' и с лимитом limit '0', '10'
AlertWeb (27 окт 2023, в 15:48)
Классно) интересно, может стоило ему сказать что существует ларка? )
мне?)
Классно) интересно, может стоило ему сказать что существует ларка? )
Стр.: 1, 2