|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
Здравствуйте Нужно передать список ID продуктов и получить в одном е данные по всем им Подскажите, пожалуйста, каким наиболее безопасным образом реализовать хранимую процедуру в MariaDB такой логики: Код: sql 1. 2. 3. 4. 5. 6.
Есть предположение использовать такую логику: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 12:42 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
jango77, от каких инъекций? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 17:18 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
вадя, SQL инъекций. Но возможно Вы хотели что-то боле конкретное? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 18:03 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
jango77 вадя, SQL инъекций. Но возможно Вы хотели что-то боле конкретное? потому как хранимки позволяют сделать 2 или 3 вида инъекций, чтоб от их защититься много усилий не надо, надо просто их знать ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 18:13 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
jango77, что будет выводить Код: sql 1. 2. 3. 4. 5. 6.
при 1,2,3 на входе , если известно что такие id есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 18:30 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 18:42 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
Akina, зачем подсказки? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 18:45 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
А так - будем ещё неделю сопли жевать... просто за сегодня на разных форумах (включая англоязычные) аншлаг вопросов именно по этой теме, и никто мануалов не читал, причём, похоже, принципиально, и возможностей языка даже не представляет, так что ответы вылетают, считай, на автомате. Всё равно основной вопрос, насчёт инъекций, остался. Ты попытай товарища, как он себе инъекцию представляет, и вообще, и в этом конкретном случае - авось таки повеселимся. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 19:57 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
Akina Ты попытай товарища, как он себе инъекцию представляет, и вообще, и в этом конкретном случае - авось таки повеселимся. вадя jango77, от каких инъекций? автор просто за сегодня на разных форумах (включая англоязычные) аншлаг вопросов именно по этой темесессия близко? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 20:08 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
сессия близко? Последняя закончилась лет 10 назад SELECT * FROM TableA WHERE FIND_IN_SET( productID, product_ids ) Также читал про такое решение, но отзывы были не в пользу защищенности такого способа. Якобы в него можно передать UNION инъекцию Имел ввиду Конкатенацию строк и UNION, но прошу не судить строго. Раньше использовали параметры с точным INT значением в процедурах, не приходилось обращаться к защите от инъекций. Но теперь возникла задача с использованием оператора IN. Потому решил разузнать поподробней По типам инъекций читал здесь https://defcon.ru/web-security/2784/ Информации много. Потому надеюсь на помощь, чтобы покрыть максимальное количество рисков ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 22:01 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
На самом деле по задаче параметр сравнивает не INT, а строковое значение в поле Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 22:03 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
jango77, надо читать грамотно, и проверять. ну и понимать, что такое хранимая процедура. вадя jango77, что будет выводить Код: sql 1. 2. 3. 4. 5. 6.
при 1,2,3 на входе , если известно что такие id есть? для начала ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 22:38 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
jango77 Также читал про такое решение, но отзывы были не в пользу защищенности такого способа. Якобы в него можно передать UNION инъекцию jango77 По типам инъекций читал здесь https://defcon.ru/web-security/2784/ Информации много. Потому надеюсь на помощь, чтобы покрыть максимальное количество рисков ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2020, 22:59 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
есть ответ? для начала Да, отрабатывает как нужно Блин, расскажи - как? хочу знать!! В какой-то из тем на stackover. Но мог что-то не верно понять. Тот вопрос не нашел Верно понял, функция FIND_IN_SET делает необходимую защиту от инъекций? Передаю в нее строковый параметр с названиями продуктов ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 17:22 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
jango77, автор Код: sql 1.
при "1,2,3" отрабатывает как надо? авторДа, отрабатывает как нужно вы не проверили даже весь прикол ответов-вопросов выше заключается в том что для входящего char-параметра (IN product_ids /* varchar255 */) используется FIND_IN_SET иначе запрос работать не будет по-моему максимум отработает как Код: sql 1.
мозги запудрили вам и ничего не сказали толком об инъекциях... почитайте о mysql_escape_string (неважно - mysql_, pdo_, mysqli_ или mysql_real_.....) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 19:09 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
jango77 Верно понял, функция FIND_IN_SET делает необходимую защиту от инъекций? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 19:10 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
Alex_Ustinov вы не проверили даже Проверил. Действительно отработал в правильным результатом. Alex_Ustinov почитайте о mysql_escape_string (неважно - mysql_, pdo_, mysqli_ или mysql_real_.....) Хорошо. спасибо за совет ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 19:26 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
jango77, jango77Проверил. Действительно отработал в правильным результатом здесь не верю. Либо мы о разных запросах. если не лень - пример того что передаете в процедуру. запрос Код: sql 1.
не может дать Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 19:42 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
здесь не верю. Либо мы о разных запросах. если не лень - пример того что передаете в процедуру. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Возвращает Код: plaintext 1. 2.
Amo отсутствует в поле name ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 21:11 |
|
Как избежать риска инъекций в хранимой процедуре при использовании WHERE IN
|
|||
---|---|---|---|
#18+
вопрос Вади был о WHERE IN (Varchar) а не о FIND_IN_SET авторjango77, что будет выводить CREATE PROCEDURE GetProductList(IN product_ids VARCHAR(255)) BEGIN SELECT * FROM TableA WHERE productID IN ( product_ids ) END при 1,2,3 на входе , если известно что такие id есть? поэтому и было предположение, что вы ничего не проверяли, выдав заведомо неправильный запрос с WHERE IN () ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2020, 21:43 |
|
|
start [/forum/topic.php?fid=47&fpage=21&tid=1828578]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 343ms |
total: | 495ms |
0 / 0 |