|
|
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, представим что у нас есть код: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. затем я его вызываю, например, так: Код: sql 1. Вопрос : насколько безопасен код определения процедуры? Может ли злоумышленник изменить логику работы процедуры и провести SQL-инъекцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 20:11:48 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
b10sМожет ли злоумышленник изменить логику работы процедуры и провести SQL-инъекцию?Конкретно у данной процедуры, имхо, нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 20:17:22 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
спасибо. ждём еще мнения! miksoft , а если в коде процедуры написать так: Код: sql 1. ничего не поменяется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 20:23:03 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
проверил Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: sql 1. 2. 3. 4. в качестве параметра ввел 1; DROP TABLE IF EXISTS TABLE2 CASCADE; выполнено только то что до первого ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 21:56:59 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
есть ещё варианты для проверки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2014, 12:19:32 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
Похоже, что параметры в хранимых процедурых полностью безопасны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 12:21:33 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
b10sПохоже, что параметры в хранимых процедурых полностью безопасны.Вовсе нет. Если задаться целью, можно и с ними SQL-инъекцию словить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 12:25:30 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
miksoftb10sПохоже, что параметры в хранимых процедурых полностью безопасны.Вовсе нет. Если задаться целью, можно и с ними SQL-инъекцию словить.без выполнения криво написанного prepared statement с использованием параметров? а пример можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 13:57:38 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
tanglirmiksoftпропущено... Вовсе нет. Если задаться целью, можно и с ними SQL-инъекцию словить.без выполнения криво написанного prepared statement с использованием параметров? а пример можно?Почему же "без"? именно с ним :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 13:58:28 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
miksoft, ждём демонстрации :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 19:15:32 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
b10sПохоже, что параметры в хранимых процедурых полностью безопасны. А с чего ты решил, что они небезопасны ? Небезопасно только, когда ты делаешь dynexec из переменных, неважно, каких -- параметров или простых. Без DYNEXEC всё безопасно на 100%, переменные никогда не воспринимаются как части комманды SQL-я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 19:54:49 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
MasterZivА с чего ты решил, что они небезопасны ? Решил исходя из наших обсуждений выше. MasterZivБез DYNEXEC всё безопасно на 100%, переменные никогда не воспринимаются как части комманды SQL-я. А никто тут DYNEXEC и не использует. Я даже не знаю что это такое :D А вообще. прочти еще раз MasterZivНебезопасно только, когда ты делаешь dynexec из переменных, неважно, каких -- параметров или простых. Без DYNEXEC всё безопасно на 100%, переменные никогда не воспринимаются как части комманды SQL-я. Я не пойму что ты имеешь ввиду. Безопасны они или не безопасны? С DYNEXEC или без DYNEXEC ? p.s.: опять флудильня начинается ;( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 20:39:18 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
b10s, всё. понял. мой косяк. к концу рабочего дня голова не варит. сейчас изучу что есть DYNEXEC и подумаю еще раз над сказанным :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 20:45:30 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
b10s, потихоньку выхожу на смысл сказанного miksoft и MasterZiv. резюмирую: если не использовать prepared statement, то параметры хранимых процедур можно считать полностью безопасными. Верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 20:47:35 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
b10s, upd: и если не пользоваться динамическим sql, где эта переменная используется. кажется, ничего не упустил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 20:50:38 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
авторрезюмирую: если не использовать prepared statement, то параметры хранимых процедур можно считать полностью безопасными. Верно? поправлю безопасно, если использовать prepared statement с подстановкой где для передачи параметров используются ? на хабре была статья про это..., жаль не запомнил ссылку... но sql строка для prepared statement может быть сформирована из параметров, которые предваритель вычиляются в самой хранимке на основании входных параметров хранимки, тогда защита уже в самой логика хранимки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 22:12:02 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
b10sпотихоньку выхожу на смысл сказанного miksoftДа чего тут входить... Если prepared statement собирается конкатенацией с участием входных параметров без должной проверки/экранирования, то может быть все, что угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2014, 22:22:54 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
вадяпроверил Код: sql 1. 2. 3. 4. в качестве параметра ввел 1; DROP TABLE IF EXISTS TABLE2 CASCADE; выполнено только то что до первого ; Что, оно в натуре вернуло запись с id = 1??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2014, 16:28:21 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovвадяпроверил Код: sql 1. 2. 3. 4. в качестве параметра ввел 1; DROP TABLE IF EXISTS TABLE2 CASCADE; выполнено только то что до первого ; Что, оно в натуре вернуло запись с id = 1??? Ну да, а почему бы и нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2014, 16:57:25 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovвадяпроверил Код: sql 1. 2. 3. 4. в качестве параметра ввел 1; DROP TABLE IF EXISTS TABLE2 CASCADE; выполнено только то что до первого ; Что, оно в натуре вернуло запись с id = 1??? В НАТУРЕ!!! проверь сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2014, 17:04:17 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
Всё описанное не исключает проведения DDoS-атаки. Достаточно нарисовать в качестве критерия отбора подзапрос, обрабатывающий дохреналиард записей из дохреналиона копий таблицы (да ещё залочить их для пущего эффекта) - и сервер сядет курить бамбук. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2014, 17:38:15 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
AkinaВсё описанное не исключает проведения DDoS-атаки. Достаточно нарисовать в качестве критерия отбора подзапрос, обрабатывающий дохреналиард записей из дохреналиона копий таблицы (да ещё залочить их для пущего эффекта) - и сервер сядет курить бамбук. приведи пример кода, проверю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2014, 21:17:32 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
param1 = '(select count(distinct t1.id+1,t2.id+1,...,t100+1) from table2 t1, table2 t2, ..., table2 t100)' Количество копий - по вкусу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2014, 21:38:09 |
|
||
|
безопасность хранимых процедур MySQL
|
|||
|---|---|---|---|
|
#18+
такое выводит 1 запись Код: sql 1. 2. 3. 4. такое Код: sql 1. 2. 3. 4. при Param1 = (SELECT 1) не выводит ничего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2014, 21:53:17 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38589971&tid=1835096]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 358ms |

| 0 / 0 |
