@lemonlimelike

Как залатать дырки?

1.
$num = $_GET['num'];  //

$res = mysqli_query($connection, "SELECT * FROM `videos` ORDER BY `id` DESC LIMIT $num, 20");

Здесь можно осуществить sql-injection, как ее исправить?

2.
mysqli_query($connection,"INSERT INTO `comment` (`name`,`text_comment`,`date`,`page_id`) VALUES('".$_POST['name']."','".$_POST['text']."', NOW(), '".$vidos['id']."')"); //


И тут вроде тоже можно, где методы идут, а как их исправить?
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
gobananas
@gobananas
finishhim.ru
Использовать PDO (с плейсхолдерами) а не mysqli самый правильный путь.
С цифрами на крайняк можно $num = intval($_GET['num']);
Со строками сложнее, просто погуглите защиту от sql-инъекций там ряд функций типа php.net/manual/en/function.strip-tags.php
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Использовать подготовленные выражения с плейсхолдерами.
Ответ написан
Комментировать
DjPhoeniX
@DjPhoeniX
Hardcore iOS & ESP developer & DJ
Во-первых подстановка (PDO, prepared requests)
Во-вторых mysqli_escape и компания
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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