Как правильно экранировать данные?
Доброе утро, сообщество! А как вы экранируете данные, которые от пользователя идут в базу? Я честно до последнего момента был уверен что PDO prepare() делает всю работу по экранированию, и засунуть в нее инъекцию не реально. Но один мой товарищ тихо мирно обычной инъекцией очистил мне табличку в базе, доказав что prepare() нифига не экранирует.
Есть масса способов, таких как addslashes, но было бы интересно послушать от вас. Вдруг все уже за меня придумано…
Есть масса способов, таких как addslashes, но было бы интересно послушать от вас. Вдруг все уже за меня придумано…
Комментарии: 5
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
В MODX есть
— modx::escape(),
— modx::quote(),
— modx::stripTags,
— ну и напоследок убойный modx::sanitizeString.
А ежели сам пишешь PDO запрос, то используй bindParam.
Вот правильный способ. Обратите внимание на
stackoverflow.com/questions/134099/are-pdo-prepared-statements-sufficient-to-prevent-sql-injection
Есть вывод ресурсов
так вот где
city:=":«Санкт–Петербург
в Санкт-Петербург приходится использовать тире, если ставить там „-“ (минус)
ничего не работает
как научить where корректно обрабатывать знак минус?
заэкранировать его както или что?