Задать вопрос

Достаточно ли использовать подготовленные запросы PDO PHP?

при приеме данных из формы, достаточно ли использовать подготовленные запросы? IDE рекомендует filter_input совмещать с is_*(). Слушаю все мнения)

public static function preExec($sql, $arr, $db) {
        $stmt = $db->prepare($sql);
        $stmt->execute($arr);
    }

    $arr[] = $_REQUEST['data'];
    $sql = 'UPDATE `sometb` SET `someval`=?';
    Class::preExec($sql, $arr, $db);
  • Вопрос задан
  • 789 просмотров
Подписаться 7 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 4
@asd111
PDO защищает от sql injection. Вам еще понадобится выводить данные пользователям так чтобы не было XSS. Ещё вам нужна будет защита CSRF. И ещё по мелочи.
В общем берите laravel или symfony и не мучайтесь.
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
тут у вас в кучу кони и люди...
Препаред стэйтментс защищают запросы от инъекций на уровне драйвера, но кроме этого есть еще логика приложения и типы данных, где эти переменные тоже должны соответствовать какому-то критерию, например если в массиве будет строковая переменная, а в базе поле под нее интежер мы падаем с ошибкой базы, а не обрабатываем на уровне приложения, где можно внятно ее обработать и отдать пользователю четкую ошибку.
Соответственно проверка данных как минимум на типы должна проводиться на уровне приложения.
Ответ написан
Комментировать
@McBernar
Путаете теплое с мягким.
Валидация форм и защита от инъекций — это совершенно разные задачи.

Для защиты достаточно PDO.
Ответ написан
@kuftachev
Вам уже правильно написали, но без разъяснений, что пользовательский ввод нужно валидировать не только на вход, но и на выход.

Например, если человек напишет и это будет отправляться на доступную страницу - это вас неприятно удивит.

И много других приятных сюрпризов может быть.

Также про CSRF, с аккаунта авторизованно где о пользователя атакующий может делать любые действия доступные пользователю.

Мораль, не нужно изобретать велосипед на таком уровне знаний, берите фреймворк и в путь. Это когда Вы уже все знаете и понимаете почему решение из Вашего фреймворка Вас не устраивает, вот тогда нужно делать велосипед.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽