Страница 1 из 1

Проверки на заполненность полей

Добавлено: 18 май 2013, 16:56
MrDead
В общем как сделать проверки на поля, которые контачат с базой данных? Есть к примеру в поле login, email, pass. Что надо написать, чтобы вписав в одно из этих полей к примеру ; DROP TABLE users; и нажать энтер,не стиралась вся база данных) И вообще на подобные штуки)

Re: Проверки на заполненность полей

Добавлено: 19 май 2013, 05:05
ktibo
Т. е. вы используете значения текстовых полей как запросы к БД? Или я не понимаю чего-то.

Re: Проверки на заполненность полей

Добавлено: 19 май 2013, 08:58
Serge
mysql_real_escape_string или mysqli_real_escape_string, смотря что используется.

Re: Проверки на заполненность полей

Добавлено: 19 май 2013, 22:19
MrDead
Ну вот у меня флеш регистрация. Во флешке поля, которые заполняются и после нажатия на кнопки данные записываются в БД. Но вот если вместо обычного логина, написать ; DROP TABLE users;, то база данных стирается) Как этого избежать?

Re: Проверки на заполненность полей

Добавлено: 19 май 2013, 22:44
sasha^
автор, выше все правильно сказано=)
mysql_real_escape_string или mysqli_real_escape_string, смотря что используется.
это функции пхп для обезвреживания запроса=)
З.Ы. мне кажется ясно какой крутой будет игра :lol:

Re: Проверки на заполненность полей

Добавлено: 20 май 2013, 00:46
MrDead
А кто сказал что мне это надо для игры?Оо

Re: Проверки на заполненность полей

Добавлено: 20 май 2013, 15:23
Alazaur
Человек хочет научиться делать правильно, вот и спрашивает совета это же похвально. А в него сразу помидорами. :)
MrDead, для фильтрации входящих строковых переменных используйте регулярные выражения. Это позволит вам не только избежать инъекций, но и проверить данные на валидность. Чтобы узнать подробнее загуглите одноименным запросом, по ним информации в сети океан и маленькая речка.
Числовые же удобно отсеивать явным приведением типа. Например:

Код: Выделить всё

$id = (int)$_POST['id']; //Делаем явное приведение к int если в $_POST['id'] было целое число, то оно и попадет в $id. В противном случае $id будет равна 0
Ну и как вам уже посоветовали выше экранируйте спец символы функциями типа mysql_real_escape_string. Кроме того PDO и MySQLi поддерживают подготавливаемые запросы, они тоже защищают от инъекций первого порядка.

Re: Проверки на заполненность полей

Добавлено: 20 май 2013, 20:29
MrDead
Спасибо всем за советы)