Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Выражение и SQL-инъекция

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Slash Zn
Отправлено: 12 Августа, 2015 - 17:56:06
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Здравствуйте.
Есть такое выражение:
PHP:
скопировать код в буфер обмена
  1. '/^[a-zA-Z0-9_\.\-]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,6}$/'

Им сценарий проверяет корректность электронной почты.
Скажите, пожалуйста, будет ли это выражение (по мимо проверки корректности) отсекать инъекции или же стоит еще использовать функцию mysqli_real_escape_string?
Спасибо.
 
 Top
Мелкий Супермодератор
Отправлено: 12 Августа, 2015 - 18:02:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Используйте prepared statements для всех данных, отправляемых в БД.


-----
PostgreSQL DBA
 
 Top
Slash Zn
Отправлено: 13 Августа, 2015 - 03:36:52
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Спасибо за совет.
Но что по моему вопросу - будет ли это выражение (по мимо проверки корректности) отсекать инъекции или же стоит еще использовать функцию mysqli_real_escape_string?
 
 Top
andrewkard
Отправлено: 13 Августа, 2015 - 10:08:59
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Регулярное выражение проверяет на наличие конкретного набора символов, если оно верно, то в переменной будет только то, что разрешено Вами же. Так что в ней не будет ничего для sql инъекции.

(Отредактировано автором: 13 Августа, 2015 - 10:09:22)

 
 Top
Мелкий Супермодератор
Отправлено: 13 Августа, 2015 - 10:46:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




andrewkard пишет:
Так что в ней не будет ничего для sql инъекции.

Скорей всего - да. Но возможно для необъятного utf лазейка осталась. Представленная регулярка не обрабатывает utf корректно.

Slash Zn пишет:
использовать функцию mysqli_real_escape_string?

Не стоит. Ведь есть prepared statements.
Конкатенировать запрос и данные - плохая идея в любом случае.


-----
PostgreSQL DBA
 
 Top
Slash Zn
Отправлено: 13 Августа, 2015 - 14:34:21
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Спасибо Вам! Нажать на спасибо не могу - не достаточно постов...


Мелкий, можете пример (код) показать с отправкой данных с использованием prepared statements?
 
 Top
Мелкий Супермодератор
Отправлено: 13 Августа, 2015 - 14:43:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)






-----
PostgreSQL DBA
 
 Top
Slash Zn
Отправлено: 13 Августа, 2015 - 17:38:42
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2015  


Помог: 0 раз(а)




Большое спасибо.
Буду вникать, пробовать...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB