|
|
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
В приложении есть генератор отчётов(Report Builder для Delphi), в нём пользователи могут менять SQL. то, что там пропускаются штуки типа "drop table" - это полбеды. В конце концов можно не давать пользователю прав на такое. Но нельзя не давать прав на update. А с ним можно наделать делов не меньше: Код: plsql 1. Как бы запретить пользователю в определённых режимах делать что-то кроме SELECT, в рамках его привилегий? Есть конечно вариант прикрутить какой-нибудь "проверяльщик SQL строки на безопасность". Если таковые есть - тоже вариант. Подскажите. Понятно, что DROP, CREATE, UPDATE и DELETE я сам могу выпилить, а какие ещё засады могут встретиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 22:29 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Запретить менять SQL? Зачем им что-то знать про SQL? В лоб вариант... Репорт билдер же по идее только на select работает? Учеткам пользователей только коннект и селект. Все остальные запросы пустить через роль приложения, если это mssql или от других учеток... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 22:41 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor Cookin, можно селектом сервер подвесить. И даже уронить. ... Не надо виды запросов ограничивать, совсем. Вопрос - организационный. Тридварасов не допускай к такому фукционалу, вот и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 22:53 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
X-Cite, Репорт билдер никак не ограничивает SQL statement, можно хоть DROP засунуть (но он сработает, естественно, только с учётки админа). Отчётов - сотни, пользователи должны их менять (иначе айтишникам кранты) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 22:56 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
ёёёёё, Ну да, и кривым селектом. Но это не страшно (убить процесс не проблема) - страшна потеря данных. Тридварасов нет, но люди ошибаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 22:58 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor Cookin, юзеры не будут отчёты менять, тем более - с применением sql. Это полный анрил, 500%. Будет либо специально нанятый мальчик (сколько нужно платить, чтобы разумное существо согласилось выполнять такую работу?). Либо вы, разработчики. Поэтому не надо осложнять себе жизнь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 23:04 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
ёёёёёVictor Cookin, юзеры не будут отчёты менять, тем более - с применением sql. А кто сотни отчётов в таком случае наструячил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 23:14 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor CookinёёёёёVictor Cookin, юзеры не будут отчёты менять, тем более - с применением sql. А кто сотни отчётов в таком случае наструячил? Неужели ваши юзеры, с помощью эскуэл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 23:15 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
ёёёёё, Ну не программёры же будут этой фигнёй заниматься. Был дан образец и - понеслось. Пока, тьфу-тьфу, никаких засад не было. Но кто ж знает что может быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2019, 23:27 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
А кто сотни отчётов в таком случае наструячил? [youtube= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 01:00 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
DimaBr, активных отчётов 553, всего за 10+ лет - 12548. Все в базе хранятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 01:07 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor Cookin, За 10 лет вполне можно было устаканить права на объекты и расписать роли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 05:09 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
IMHO там бОльшая часть отчетов повторяет друг друга, может быть отличаясь в мелких ньюансах. Ибо при таком количестве отчетов вместо того что бы разбираться нет ли уже такого существующего, юзерю проще сделать новый, на основе какого-нибудь другого. И таким образом хаос нарастает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 06:42 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor CookinDimaBr, активных отчётов 553, всего за 10+ лет - 12548. Все в базе хранятся. - Что-то у нас техподдержка бездельничает, пользователи перестали обращаться? - Просто мы на прошлой неделе метаданные в базе поменяли, вот пользователи и не звонят, отчеты правят... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 09:36 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor Cookinёёёёё, Ну не программёры же будут этой фигнёй заниматься. Был дан образец и - понеслось. Пока, тьфу-тьфу, никаких засад не было. Но кто ж знает что может быть. а потом ты жалуешься, что юзеры могут использовать update или delete :-) и кстати, довольное странное отношение к отчетам, ты называешь их "фигней", хотя потом сам же говоришь, что: Victor Cookinактивных отчётов 553, всего за 10+ лет - 12548. Все в базе хранятся. на мой взгляд со стороны это уже вполне себе серьезный момент, требующий правильной организации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 09:46 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
GatorЗа 10 лет вполне можно было устаканить права на объекты и расписать роли (sorry for offtop) интересно как в Оракле, например, можно дать пользователю возможность работать на изменение только с одной записью? Триггеры не предлагать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 17:43 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor Cookinинтересно как в Оракле, например, можно дать пользователю возможность работать на изменение только с одной записью?Так же как и везде - через View. Можно даже с одним полем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 17:47 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
asutp2а потом ты жалуешься, что юзеры могут использовать update или delete :-) жалуюсь, да. Мне кажется в отчётах пособные запросы должны блокироваться. asutp2и кстати, довольное странное отношение к отчетам, ты называешь их "фигней" это парафраз ёёёёё(сколько нужно платить, чтобы разумное существо согласилось выполнять такую работу?). asutp2на мой взгляд со стороны это уже вполне себе серьезный момент, требующий правильной организации Все по псевдопапочкам разложено) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 17:47 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Так же как и везде - через View. Можно даже с одним полем не понимаю как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 17:50 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
fraksIMHO там бОльшая часть отчетов повторяет друг друга, может быть отличаясь в мелких ньюансах. Ибо при таком количестве отчетов вместо того что бы разбираться нет ли уже такого существующего, юзерю проще сделать новый, на основе какого-нибудь другого. И таким образом хаос нарастает. Да нет никакого хаоса. Ну да, меняют. Год поменялся, НДС поменялся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 17:51 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor Cookinинтересно как в Оракле, например, можно дать пользователю возможность работать на изменение только с одной записью? Например, можно открыть культовую книгу Тома Кайта, которую всегда рекомендуют прочитать любому новичку. Там этому вопросу посвящена одна из глав. Victor CookinТриггеры не предлагать. А что ещё не предлагать? Опубликуйте, пожалуйста, весь список. SELECT, INSERT, UPDATE и DELETE туда войдут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 18:10 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
softwarerНапример, можно открыть культовую книгу Тома Кайта, которую всегда рекомендуют прочитать любому новичку. Там этому вопросу посвящена одна из глав. У Кайта много книг. В основном как раз для профессионалов. Какую конкретно книгу Вы рекомендуете. softwarerА что ещё не предлагать? Опубликуйте, пожалуйста, весь список. SELECT, INSERT, UPDATE и DELETE туда войдут? Нет, только триггеры не предлагать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 18:15 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor CookinКак бы запретить пользователю в определённых режимах делать что-то кроме SELECT, в рамках его привилегий? Например, через роли. Victor CookinЕсть конечно вариант прикрутить какой-нибудь "проверяльщик SQL строки на безопасность". Есть и более идиотские варианты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 18:17 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor Cookin, В firebird может быть r/o транзакция. Один из вариантов решения проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 18:32 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
06.06.2019 18:32, Шавлюк Евгений пишет: > В firebird может быть r/o транзакция. у Оракела тоже. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 18:36 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий у Оракела тоже. Пользователь должен иметь возможность сохранять сам код отчёта, а он в базе. То есть что, перед сохранением транзакцию откатываем, а после - опять создаём? Можно в принципе. Но я не уверен, что RB будет пользоваться именно этой транзакцией, а не создаст свои. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 18:49 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
softwarerНапример, через роли Да, это наиболее адекватный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 18:52 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Да, это наиболее адекватный вариант. PS Это, правда, вариант RO, а не ограничения изменений одной записью, но это даже и лучше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 18:57 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor CookinМимопроходящийу Оракела тоже. Пользователь должен иметь возможность сохранять сам код отчёта, а он в базе. То есть что, перед сохранением транзакцию откатываем, а после - опять создаём? Можно в принципе. Но я не уверен, что RB будет пользоваться именно этой транзакцией, а не создаст свои. Процедуры можно использовать, которые наделены соответствующими правами, не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 20:48 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
активных отчётов 553, всего за 10+ лет - 12548. Все в базе хранятся. 12548 отчётов ? Может 12548 копий одного и того же отчёта ? Вы проверьте, каждый второй одинаковые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 21:52 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
DimaBrВы проверьте, каждый второй одинаковые Ну и что? Ну будут ~250 различных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 22:03 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
ёёёёёПроцедуры можно использовать, которые наделены соответствующими правами, не? ага... А поле переназвали, и процедура стала инвалидом. К тому ж не уверен что RB адекватно будет работать с таким источником данных, как процедура... Как там сделать rbDataPipe из процедуры ? Всё проще - надо сделать специальный коннекшн для специального юзера - ReportBuilderUser. Этому юзеру ограничить права только на чтение. И переходить на него при работе с ReportBuilder. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 22:11 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor CookinёёёёёПроцедуры можно использовать, которые наделены соответствующими правами, не? ага... А ... К тому ж не уверен что ... Как там сделать ...? Всё проще - надо сделать специальный... Ну ты попробуй хотя бы. Как минимум - узнаешь, как процедуры в качестве источника данных применять. :) А что такое RB? ReportBuilder? https://www.codeproject.com/Articles/857489/Creating-Report-using-Report-Builder-and-Oracle-DB ... Можно процедуру использовать именно для сохранения отчета в базе. Юзеру запись запретить совсем, а сторед процедуре - разрешить. И юзера до этой SP допустить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2019, 22:43 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Victor Cookin_Vasilisk_Так же как и везде - через View. Можно даже с одним полемне понимаю какОтобрать права на доступ к таблице и выдать права на доступ к вьюхе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 16:26 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Отобрать права на доступ к таблице и выдать права на доступ к вьюхе Основное приложение работать перестанет - там запросы именно к таблицам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 17:28 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
ёёёёёНу ты попробуй хотя бы. Как минимум - узнаешь, как процедуры в качестве источника данных применять. :) Прочитал. Понял, как в РБ можно процедуры ... Только зачем? Выберет пользователь вместо процедуры таблицу - и понеслось UPDATE ...WHERE 1=1 ёёёёёМожно процедуру использовать именно для сохранения отчета в базе. Юзеру запись запретить совсем, а сторед процедуре - разрешить. И юзера до этой SP допустить. Да с сохранением отчёта вообще проблем нет. Пусть сохраняют как хотят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 17:33 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
07.06.2019 17:28, Victor Cookin пишет: > Основное приложение работать перестанет - там запросы именно к таблицам. таблицу переименуй. оберни её во вьюху с исходным именем таблицы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 18:11 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийтаблицу переименуй. оберни её во вьюху с исходным именем таблицы. А что случится если в приложении случится INSERT INTO ORDERS (Order_ID, ... VALUES (23512234,... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 18:15 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
07.06.2019 18:15, Victor Cookin пишет: > А что случится если в приложении случится > INSERT INTO ORDERS (Order_ID, ... VALUES (23512234,... случится инсёрт во вьюху Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 18:18 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийслучится инсёрт во вьюху А что случится если в случится INSERT INTO ORDERS SELECT 434 000 000 records? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 18:27 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
07.06.2019 18:27, Victor Cookin пишет: > А что случится если в случится > INSERT INTO ORDERS SELECT 434 000 000 records? случится отлуп, если ты правильно сделаешь RLS. ps: не нужно растекаться мыслями по всем форумам сразу. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 18:34 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийслучится отлуп, если ты правильно сделаешь RLS. А зачем View делать? Я точно так же могу RLS на таблице настроить, нет? Мимопроходящийps: не нужно растекаться мыслями по всем форумам сразу. Вопрос - на стыке. Можно ведь просто сделать анализ SQL строки средствами Дельфи перед тем как она будет отдана из RB в базу Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 18:45 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
07.06.2019 18:45, Victor Cookin пишет: > Можно ведь просто сделать анализ SQL строки средствами Дельфи сделай. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 18:58 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийсделай. Во-первых, это некрасиво... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 19:21 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
что за дичь, у вас там пользователи что под правами админа работают чтоли? доступ к объектам и строкам спокойно делается встроенными средствами практически любого вменяемого sql сервера. Причем как Вам уже сказали выше, роли, разграничение доступа, хранимки, вьюшки, кое где и права на отдельные строки таблицы можно. Что вы опять сову на глобус натягиваете, хотите правильно, Вам сказали как, хотите неправильно, дело Ваше, но причем тут мы? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 19:25 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
эндичто за дичь, у вас там пользователи что под правами админа работают чтоли? Под собой они работают. Слава богу, не владельцы схемы. А когда я захожу, могу спокойно даже DROP TABLE сделать из Report Builder. эндидоступ к объектам и строкам спокойно делается встроенными средствами практически любого вменяемого sql сервера. Тут вообще-то скорее по Дельфям форум, а не по Ораклу. По Ораклу я спросил в том форуме эндиПричем как Вам уже сказали выше, роли, разграничение доступа, хранимки, вьюшки, кое где и права на отдельные строки таблицы можно. Роли достаточно. Хранимки, вьюшки - не дают абсолютно ничего. RLS - - возможно эндиЧто вы опять сову на глобус натягиваете Интересно иметь on the table все возможности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2019, 19:49 |
|
||
|
проверяльщик SQL строки на безопасность
|
|||
|---|---|---|---|
|
#18+
Самый вменяемый совет, имхо, это завести RO роль ReportBuilder и выполнять все юзерские SQL-и из-под нее. Ну и придется мириться с возможностью повешения сервера косым/злобным запросом (или отрубать длинные запросы средствами сервера) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2019, 16:54 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2039383]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
134ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 452ms |

| 0 / 0 |
