[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mysql_real_escape_string
Кир
Обработка формы.
Все данные перед заносом проходят
mysql_real_escape_string($var)
Так же
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
$q = "insert into users(id, login, password, email, location, ip) values('NULL','$login','$db_pass','$email','$location','$ip')";
Логин и эмаил проходят проверку регулярками, но если в поле location написать что-то типа
'привет"ага!~;
то оно в базу так и заносится, т.е. не экранируется, хоть и пропускается через mysql_real_escape_string
если пропустить запрос к базе через echo:
echo '$q = "insert into users(id, login, password, email, location, ip) values('.NULL.','.$login.','.$db_pass.','.$email.','.$location.','.$ip.')"';
получаем
$q = "insert into users(id, login, password, email, location, ip) values(,asdasd,85136c79cbf9fe36bb9d05d0639c70c265c18d37,asdasd@asd.asd,\"hello\'~;,127.0.0.1)"
все экранируется...я туплю или как?



Спустя 11 минут, 14 секунд (16.05.2010 - 23:40) twin написал(а):
Эта функция экранирует кавычки только для транспортировки из скрипта в базу. Ни в базе, ни в последующем выводе бэкслэшей не будет.

Спустя 9 минут, 38 секунд (16.05.2010 - 23:50) Кир написал(а):
т.е. все нормально?

Спустя 1 час, 16 минут, 24 секунды (17.05.2010 - 01:06) FatCat написал(а):
Цитата (twin @ 17.05.2010 - 00:40)
Эта функция экранирует кавычки только для транспортировки из скрипта в базу.

Если мне нужно отправить в базу код \' - что сделает эта функция? Добавит бэкслэшь перед кавычкой и пробьет огромную брешь в безопасности?
Предпочитаю самое простое решение: str_relace-ом заменяю одиночную кавычку на две одиночные и больше ничего не трогаю.

Спустя 36 минут, 24 секунды (17.05.2010 - 01:43) Nikitian написал(а):
Цитата (FatCat @ 16.05.2010 - 22:06)
Цитата (twin @ 17.05.2010 - 00:40)
Эта функция экранирует кавычки только для транспортировки из скрипта в базу.

Если мне нужно отправить в базу код \' - что сделает эта функция? Добавит бэкслэшь перед кавычкой и пробьет огромную брешь в безопасности?

А попробуйте wink.gif
Функция добавит 2 бэкслеша и в базу попадёт 2 символа: бэкслеш и кавычка. Все рады, всем мороженого.
Цитата (FatCat @ 16.05.2010 - 22:06)

Предпочитаю самое простое решение: str_relace-ом заменяю одиночную кавычку на две одиночные и больше ничего не трогаю.


Очень вредно так делать. Вот пример кода, который пострадает от таких преобразований:

<a href="#" onclick="alert('Hey-hey!');return false;">Click here</a>

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.