Я знаю, что вы должны подготовить все инструкции SQL, в которых пользователь имеет влияние, этот вопрос больше, чтобы увидеть, можно ли также иметь SQL-запрос, где пользователь может изменить, но вы обрабатываете ошибки по-разному.Является ли это утверждение SQL безопасным для инъекций, несмотря на то, что оно не готовится?
код, который SQL инъекции:
if(isset($_GET['delete']) && (int)$_GET['delete'] && is_numeric($_GET['delete'])){
$query = $handler->query('SELECT * FROM portfolio WHERE id =' . $_GET['delete']);
}
else{
echo'Error';
}
Будет ли SQL запрос безопасности от инъекции из-за if
заявления вокруг него или есть еще какой-то способ впрыскивания?
Это чисто для исследования, и это, очевидно, не в реальном реальном веб-сайте.
Вот как выглядит код, когда он готов, чтобы показать, что я не вопросом, как приготовить:
if(isset($_GET['delete']) && (int)$_GET['delete'] && is_numeric($_GET['delete'])){
$query = $handler->prepare('SELECT * FROM portfolio WHERE id = :id');
$query->execute([
':id' => $_GET['delete']
]);
}
else{
echo'Error';
}
Id сказать, что вы можете пропустить условие, если используете параметризованный запрос. Отправка, т. Е. Строка в вашей переменной get приведет только к несоответствующим строкам – JimL