PHP+Mysql
Данные в БД добавляются через PDO (именованные плейсхолдеры), при заполнении поля input с кавычками например ООО "Рога и копыта" в БД оказывается эта фраза полностью именно в таком виде. При таком методе работы с базой нужно ли опасаться за кавычки и прочие потенциально опасные для sql символы?
Это называется смотрю в книгу вижу фигу.
"Параметры подготовленного запроса не требуется экранировать кавычками"
Сразу вопрос что такое параметры запроса, в данном примере это только type=:type ?
$my = $pdo->prepare(' SELECT `email` FROM `organization` WHERE type=:type');
$my->bindParam(':type', $input);
$my->execute();
И это:
"однако, если другие части текста запроса записаны с неэкранированными символами"
Что такое "другие части текста запроса"? Т.е. какой например подготовленный PDO-запрос будет уязвимым?
sunrails: Спасибо, но если я вместо `email` попытаюсь поставить $email просто так без всего, то вроде бы он будет плеваться ошибками и не выполнит запрос...
Ну вот я в комментарии к ответу sunrails задал уточняющий. Из базы они только отображаются на экран, а если меняются и опять в базу идут то у меня опять prepare и опять именованные везде. О каком случае уязвимости они тогда в доках пишут?
Дмитрий: была статейка на хабре такая фундаментальная. Как по факту нужно защищаться а использования одной PHP функции фильтра просто смешно.(обходиться на раз).