![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
в существующей программе нашел код, СУБД - MySQL:
$f->{file_id} - идет с html form'ы и ни на какие проверки не проверяется! и в ARef проверок, тоже, нету 1) будет ли тут инъекция? 2) так же вопрос: если вместо UPDATE поставить SELECT запрос, будет ли инъекция в IN ? автор кода не я, можно предположить что тут не будет инъекции? я бы поставил параметрический запрос, или хотябы проверил бы что все значения массива $f->{file_id}) исключительно ЦИФРА $_ !~ /^\d+$/ Это сообщение отредактировал(а) gcc - 4.9.2010, 11:05 |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
gcc, по поводу инъекции ответ, вроде, очевиден: UPDATE Files SET file_fld_id=? WHERE usr_id=? AND file_id IN ("") OR usr_id=1 OR file_id IN("0").
По поводу SELECT: насколько я знаю, при использовании DBD::mysql и выключенной опции mysql_multi_statements выполнение нескольких запросов, указанных через разделитель невозможно, поэтому невозможно и изменение данных. -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
ming |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 30.1.2009 Где: Новосибирск Репутация: 2 Всего: 3 |
Приём "prepared statement + placeholders" как раз и призван защитить от SQL-инъекций.
Подробнее, например тут: http://stackoverflow.com/questions/2300765...using-perls-dbi Это сообщение отредактировал(а) ming - 6.9.2010, 17:58 |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Для запросов с IN() placeholder'ы не подойдут. Вариант:
-------------------- Died at Life.pl line 21 |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
KSURi, почему не подойдут?
![]() -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
ming, KSURi, оно написанное не мной и написано в том виде в котором я написал в первом посте... по этому хотел спросить будет ли тут дырка...
ginnie, эта опция mysql_multi_statements по умолчанию выключенная? вродебы... (я ее не включал, а в настройках вродебы выключенная) т.е тут дырки не будет? запросы Insert,update,drop,delete и т.д. не вставятся в IN ? Это сообщение отредактировал(а) gcc - 7.9.2010, 13:11 |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Запросы вставятся, но работать не будут. -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
gcc |
|
||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
понятно, спасибо...
я бы еще сделал так, если надо проверить что там ID (int значение):
или так: (но это ни разу не использовал)
Это сообщение отредактировал(а) gcc - 8.9.2010, 08:56 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |