Сегодня хотим поделиться с вами находкой - видео от Anthony Ferrara, автора канала о программировании, PHP и Computer Science "Programming with Anthony". Речь пойдёт о внедрении зависимостей, и автор подробно разбирает, что это такое и как работает. Специально для вас мы подготовили перевод (ручной, а не автотранслейт) и хотели даже добавить в формате субтитров, но, к сожалению, у автора канала закрыта эта возможность. Перевод: Что такое внедрение зависимостей? Чтобы ответить на этот вопрос, разберёмся с понятием зависимости...
Правильный способ избежать атак с использованием SQL-инъекций, независимо от того, какую базу данных вы используете, - это отделить данные от базы. Переданные значения никогда не должны интерпретироваться синтаксическим анализатором SQL как команды.
Необходимо написать запрос так, что бы пришедшее значение шло как параметр запроса и экранировалось на уровне приложения, а не хранилища данных. В такой реализации злоумышленник не сможет внедрить вредоносный SQL. Базово существуют два варианта решения этой задачи: $stmt = $pdo->prepare('SELECT * FROM products WHERE code = :code');
$stmt->execute([ 'code' => $code ]);
foreach ($stmt as $row) {
// получаем значения из $row
} 2...