Здравствуйте, подскажите, пожалуйста, что лучше использовать и так-ли уязвима real_escape_string?
Ситуация такова, что необходимо работать с username, password, email и token.
Что лучше подойдет для подготовки запроса к исполнению, привык к real_escape_string, но узнал, что имеет какие-то уязвимости и советуют prepare.
в данном случае нужны регулярки для username, password, email , чтоб лишних символов там не было и нет нужды фильтровать ничего, даже для token можно регуляркой проверить в зависимости от того, какими символами он ограничивается.
а насчет самого вопроса - юзайте prepare, где узнали про уязвимости real_escape_string? и что там было написано? можно и им пользоваться
Стримил на liveconding.tv, человек яро настаивал на возможностях обхода) Потому и стал интересоваться, а толково ничего не написано о prepare)
Все сложно))
При использовании prepared queries параметры запроса передаются отдельно от текста самого запроса, поэтому SQL injections становятся невозможны в принципе, by design.
Я не думаю, что real_escape_string уязвима, тем не менее, идея оградиться от возможности SQL injections прямо на уровне API работы с СУБД нравится мне гораздо больше.
OnYourLips Prepared statements тоже уязвимы, потому что не убивают тех программистов, которые прямо в текст запроса кроме плейсхолдеров под параметры умудряются вконкатенировать значения некоторых из них.