dazle
@dazle
Хороший электрик, но в душе программист

Не получается сделать защиту от SQL атак. Почему?

Вот код ниже где инсерт в SQL запросе не могу защитить часть кода от аттак:
if(isset($_SESSION['id']))
 {
 

 if(mysqli_num_rows($ses)>0)
 {
	 	 

 
  $result=mysqli_prepare($bd, "UPDATE session SET putdate = NOW() WHERE idpolzzz=? ");
 mysqli_stmt_bind_param($result, 'i', $id ); 
 mysqli_stmt_execute($result);
 
 }
 
 
 
 // Иначе, если такого номера нет - посетитель только что
 // вошёл - помещаем в таблицу нового посетителя
 else
 {
 $query = "INSERT INTO session VALUES('$id', NOW())";
 
 

 
 if(!mysqli_query($bd, $query))
 {
 echo "<p>Ошибка при добавлении пользователя</p>";
 exit();
 }
 }
 }
  • Вопрос задан
  • 232 просмотра
Пригласить эксперта
Ответы на вопрос 3
glaphire
@glaphire Куратор тега PHP
PHP developer
Для надежной защиты от инъекций используйте PDO, mysqli уже устарело.
Ответ написан
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
Данные в тексте запроса должны быть правильно экранированы.

https://www.php.net/manual/ru/mysqli.query.php
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
И никакой проверки на валидность строки в $_SESSION['id']? И нет защиты от иньекции при выполнении SQL-запроса с INSERT-ом?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы