@cyberlog

PHP — как правильно делать экранирование данных перед вставкой в БД?

Много статей на эту тему, я так понял сейчас считается наиболее безопасным способом использование PDO.
Так ли это?
Какие свежие статьи на эту тему можно посмотреть?
  • Вопрос задан
  • 577 просмотров
Пригласить эксперта
Ответы на вопрос 3
@thorii
Да, Желательно использовать PDO. Почитать можно в доках языка, там вполне актуальная информация:
PDO::prepare - Подготовка(компиляция) запроса
PDO::bindParam - привязка параметра
PDO::bindValue - привязка параметра 2 (Внимательне...
BindParam/Value отлично работают, в общем процесс происходит так: через метод PDO::prepare($query) подготавливается запрос (и более его изменить нельзя), он вернет PDOStatement который имеет сами методы bindParam/Value Через которые вы уже "привязываете данные к запросу". Так как запрос SQL уже был скомпилирован, то SQL инъекция уже невозможна (запрос отдельно от данных).
Помимо методов bindParam/Value данные можно передать напрямую при выполнении запроса методом PDOStatement::execute.
Ответ написан
Работайте со своей БД с помощью этой библиотеки
http://www.redbeanphp.com/index.php
Про всякие там SQL инъекции и другого бреда, можете забыть сразу
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Кратко: шаблонным выражением!
Пример:
$sql = 'SELECT * FROM [$this->table] WHERE id=[$id:numeric] OR user=[$id:string]';
$sql = safe(get_defined_vars($this));

Затем, составление SQL-выражения внутри safe() и возврат в переменную через return.
Ответ написан
Ваш ответ на вопрос

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

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