Здравствуйте, как мне убрать все служебные слова CQL со строки? Читал вот тут http://php.ru/manual/ref.strings.html но ничего не нашел... Есть функция http://php.ru/manual/function.strip-tags.html но она мне не подходит, так как она только удаляет html и php, но мне нужно что то подобное ей, только для SQL.
Можно и так сказать. У меня в коде есть такой запрос к бд Код (Text): SELECT id FROM site WHERE mail='$mail' AND pass='$pass' Вот думаю, нельзя ли будет чего натворить в бд?
о боги... ты уже 3+ года на пхп.ру и твоя голова забита вот таким говнокодом? офигеть... 1. атака будет если ты не экранируешь строковые значения и работаешь в текстовом режиме. 2. никто никогда не ищет пароль в бд - выбирается строка юзера (если есть) и сравнивается пароль с введенным в форме. 3. никто никогда не хранит пароль в открытом виде - используется хэш строки.
Пароль у меня и не хранится в открытом виде. Я написал такой запрос потому что решил что можно авторизовать пользователя одним ифом, вот так: Код (PHP): if(mysqli_num_rows(mysqli_query($db,"SELECT id FROM user WHERE mail='$mail' AND pass='$pass'")) == 1) И в чем разница как я буду сравнивать пароль? В запросе или после того как сделаю выборку строки пользователя? А вот по поводу Можно пожалуйста по подробнее?
https://php.net/manual/ru/mysqli.real-escape-string.php для всех полученных из внешних источников данных перед запросом или https://php.net/manual/ru/mysqli.prepare.php (все данные в запрос вставлять через плейсхолдеры)
а зачем пользователя авторизовывать одним ифом? а как же проверки активности учетки, тухлости пароля и тому подобное? огромная разница. так ты светишь ВСЕ пароли. можно. ты обмениваешься запросами с сервером в текстовом режиме. то есть просто последовательность байт которую анализатор будет потом разбирать, приводить к типам и тому подобное. на выходе из пхп и на входе в мускул это обычная строка. если подставляемые в эту строку данные не экранируются - запрос принимает неожиданные формы и допускает выполнение иъекций. если экранируются - запрос не принимает неожиданных форм.
Да там нет такой нужды... Там простейшая админка для сайта. А вот это да, что то я не подумал об этом. Спасибо, я учту!