powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / проверяльщик SQL строки на безопасность
47 сообщений из 47, показаны все 2 страниц
проверяльщик SQL строки на безопасность
    #39823114
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В приложении есть генератор отчётов(Report Builder для Delphi), в нём пользователи могут менять SQL.
то, что там пропускаются штуки типа "drop table" - это полбеды. В конце концов можно не давать пользователю прав на такое. Но нельзя не давать прав на update. А с ним можно наделать делов не меньше:
Код: plsql
1.
Update price set old_price = 0



Как бы запретить пользователю в определённых режимах делать что-то кроме SELECT, в рамках его привилегий?

Есть конечно вариант прикрутить какой-нибудь "проверяльщик SQL строки на безопасность". Если таковые есть - тоже вариант. Подскажите. Понятно, что DROP, CREATE, UPDATE и DELETE я сам могу выпилить, а какие ещё засады могут встретиться?
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823118
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запретить менять SQL? Зачем им что-то знать про SQL?

В лоб вариант...
Репорт билдер же по идее только на select работает?
Учеткам пользователей только коннект и селект.
Все остальные запросы пустить через роль приложения, если это mssql или от других учеток...
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823120
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin,

можно селектом сервер подвесить. И даже уронить.
...
Не надо виды запросов ограничивать, совсем. Вопрос - организационный.
Тридварасов не допускай к такому фукционалу, вот и все.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823122
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Cite,
Репорт билдер никак не ограничивает SQL statement, можно хоть DROP засунуть (но он сработает, естественно, только с учётки админа). Отчётов - сотни, пользователи должны их менять (иначе айтишникам кранты)
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823123
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Ну да, и кривым селектом. Но это не страшно (убить процесс не проблема) - страшна потеря данных. Тридварасов нет, но люди ошибаются.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823127
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin,

юзеры не будут отчёты менять, тем более - с применением sql.
Это полный анрил, 500%.
Будет либо специально нанятый мальчик (сколько нужно платить, чтобы разумное существо согласилось выполнять такую работу?).

Либо вы, разработчики. Поэтому не надо осложнять себе жизнь.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823134
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёVictor Cookin,

юзеры не будут отчёты менять, тем более - с применением sql.


А кто сотни отчётов в таком случае наструячил?
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823135
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor CookinёёёёёVictor Cookin,

юзеры не будут отчёты менять, тем более - с применением sql.


А кто сотни отчётов в таком случае наструячил?
Неужели ваши юзеры, с помощью эскуэл?
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823139
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

Ну не программёры же будут этой фигнёй заниматься. Был дан образец и - понеслось. Пока, тьфу-тьфу, никаких засад не было. Но кто ж знает что может быть.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823163
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто сотни отчётов в таком случае наструячил?
[youtube=
YouTube Video
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823165
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

активных отчётов 553, всего за 10+ лет - 12548. Все в базе хранятся.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823174
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin,

За 10 лет вполне можно было устаканить права на объекты и расписать роли
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823185
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO там бОльшая часть отчетов повторяет друг друга, может быть отличаясь в мелких ньюансах.
Ибо при таком количестве отчетов вместо того что бы разбираться нет ли уже такого существующего, юзерю проще сделать новый, на основе какого-нибудь другого. И таким образом хаос нарастает.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823246
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor CookinDimaBr,

активных отчётов 553, всего за 10+ лет - 12548. Все в базе хранятся.
- Что-то у нас техподдержка бездельничает, пользователи перестали обращаться?
- Просто мы на прошлой неделе метаданные в базе поменяли, вот пользователи и не звонят, отчеты правят...
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823257
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookinёёёёё,

Ну не программёры же будут этой фигнёй заниматься. Был дан образец и - понеслось. Пока, тьфу-тьфу, никаких засад не было. Но кто ж знает что может быть.
а потом ты жалуешься, что юзеры могут использовать update или delete :-)
и кстати, довольное странное отношение к отчетам, ты называешь их "фигней", хотя потом сам же говоришь, что:
Victor Cookinактивных отчётов 553, всего за 10+ лет - 12548. Все в базе хранятся.
на мой взгляд со стороны это уже вполне себе серьезный момент, требующий правильной организации
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823635
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GatorЗа 10 лет вполне можно было устаканить права на объекты и расписать роли
(sorry for offtop)
интересно как в Оракле, например, можно дать пользователю возможность работать на изменение только с одной записью? Триггеры не предлагать.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823639
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookinинтересно как в Оракле, например, можно дать пользователю возможность работать на изменение только с одной записью?Так же как и везде - через View. Можно даже с одним полем
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823640
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2а потом ты жалуешься, что юзеры могут использовать update или delete :-)
жалуюсь, да. Мне кажется в отчётах пособные запросы должны блокироваться.

asutp2и кстати, довольное странное отношение к отчетам, ты называешь их "фигней"
это парафраз ёёёёё(сколько нужно платить, чтобы разумное существо согласилось выполнять такую работу?).

asutp2на мой взгляд со стороны это уже вполне себе серьезный момент, требующий правильной организации
Все по псевдопапочкам разложено)
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823643
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Так же как и везде - через View. Можно даже с одним полем
не понимаю как
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823644
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraksIMHO там бОльшая часть отчетов повторяет друг друга, может быть отличаясь в мелких ньюансах.
Ибо при таком количестве отчетов вместо того что бы разбираться нет ли уже такого существующего, юзерю проще сделать новый, на основе какого-нибудь другого. И таким образом хаос нарастает.

Да нет никакого хаоса. Ну да, меняют. Год поменялся, НДС поменялся...
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823665
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookinинтересно как в Оракле, например, можно дать пользователю возможность работать на изменение только с одной записью?
Например, можно открыть культовую книгу Тома Кайта, которую всегда рекомендуют прочитать любому новичку. Там этому вопросу посвящена одна из глав.

Victor CookinТриггеры не предлагать.
А что ещё не предлагать? Опубликуйте, пожалуйста, весь список. SELECT, INSERT, UPDATE и DELETE туда войдут?
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823668
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerНапример, можно открыть культовую книгу Тома Кайта, которую всегда рекомендуют прочитать любому новичку. Там этому вопросу посвящена одна из глав.

У Кайта много книг. В основном как раз для профессионалов. Какую конкретно книгу Вы рекомендуете.

softwarerА что ещё не предлагать? Опубликуйте, пожалуйста, весь список. SELECT, INSERT, UPDATE и DELETE туда войдут?

Нет, только триггеры не предлагать.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823670
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor CookinКак бы запретить пользователю в определённых режимах делать что-то кроме SELECT, в рамках его привилегий?
Например, через роли.

Victor CookinЕсть конечно вариант прикрутить какой-нибудь "проверяльщик SQL строки на безопасность".
Есть и более идиотские варианты.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823679
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin,

В firebird может быть r/o транзакция. Один из вариантов решения проблемы
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823682
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
06.06.2019 18:32, Шавлюк Евгений пишет:
> В firebird может быть r/o транзакция.

у Оракела тоже.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823689
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
у Оракела тоже.


Пользователь должен иметь возможность сохранять сам код отчёта, а он в базе. То есть что, перед сохранением транзакцию откатываем, а после - опять создаём? Можно в принципе. Но я не уверен, что RB будет пользоваться именно этой транзакцией, а не создаст свои.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823690
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerНапример, через роли

Да, это наиболее адекватный вариант.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823692
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, это наиболее адекватный вариант.

PS Это, правда, вариант RO, а не ограничения изменений одной записью, но это даже и лучше
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823735
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor CookinМимопроходящийу Оракела тоже.


Пользователь должен иметь возможность сохранять сам код отчёта, а он в базе. То есть что, перед сохранением транзакцию откатываем, а после - опять создаём? Можно в принципе. Но я не уверен, что RB будет пользоваться именно этой транзакцией, а не создаст свои.
Процедуры можно использовать, которые наделены соответствующими правами, не?
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823755
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
активных отчётов 553, всего за 10+ лет - 12548. Все в базе хранятся.
12548 отчётов ?
Может 12548 копий одного и того же отчёта ?
Вы проверьте, каждый второй одинаковые
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823760
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrВы проверьте, каждый второй одинаковые

Ну и что? Ну будут ~250 различных
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823762
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёПроцедуры можно использовать, которые наделены соответствующими правами, не?

ага... А поле переназвали, и процедура стала инвалидом. К тому ж не уверен что RB адекватно будет работать с таким источником данных, как процедура... Как там сделать rbDataPipe из процедуры ?

Всё проще - надо сделать специальный коннекшн для специального юзера - ReportBuilderUser. Этому юзеру ограничить права только на чтение. И переходить на него при работе с ReportBuilder.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39823776
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor CookinёёёёёПроцедуры можно использовать, которые наделены соответствующими правами, не?

ага... А ... К тому ж не уверен что ... Как там сделать ...?

Всё проще - надо сделать специальный...

Ну ты попробуй хотя бы. Как минимум - узнаешь, как процедуры в качестве источника данных применять. :)

А что такое RB? ReportBuilder? https://www.codeproject.com/Articles/857489/Creating-Report-using-Report-Builder-and-Oracle-DB
...
Можно процедуру использовать именно для сохранения отчета в базе. Юзеру запись запретить совсем, а сторед процедуре - разрешить. И юзера до этой SP допустить.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824165
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin_Vasilisk_Так же как и везде - через View. Можно даже с одним полемне понимаю какОтобрать права на доступ к таблице и выдать права на доступ к вьюхе
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824202
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Отобрать права на доступ к таблице и выдать права на доступ к вьюхе
Основное приложение работать перестанет - там запросы именно к таблицам.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824205
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёНу ты попробуй хотя бы. Как минимум - узнаешь, как процедуры в качестве источника данных применять. :)

Прочитал. Понял, как в РБ можно процедуры ... Только зачем?
Выберет пользователь вместо процедуры таблицу - и понеслось UPDATE ...WHERE 1=1

ёёёёёМожно процедуру использовать именно для сохранения отчета в базе. Юзеру запись запретить совсем, а сторед процедуре - разрешить. И юзера до этой SP допустить.
Да с сохранением отчёта вообще проблем нет. Пусть сохраняют как хотят.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824239
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
07.06.2019 17:28, Victor Cookin пишет:

> Основное приложение работать перестанет - там запросы именно к таблицам.

таблицу переименуй.
оберни её во вьюху с исходным именем таблицы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824243
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийтаблицу переименуй.
оберни её во вьюху с исходным именем таблицы.


А что случится если в приложении случится
INSERT INTO ORDERS (Order_ID, ... VALUES (23512234,...
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824250
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
07.06.2019 18:15, Victor Cookin пишет:
> А что случится если в приложении случится
> INSERT INTO ORDERS (Order_ID, ... VALUES (23512234,...

случится инсёрт во вьюху
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824258
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийслучится инсёрт во вьюху


А что случится если в случится
INSERT INTO ORDERS SELECT 434 000 000 records?
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824267
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
07.06.2019 18:27, Victor Cookin пишет:
> А что случится если в случится
> INSERT INTO ORDERS SELECT 434 000 000 records?

случится отлуп, если ты правильно сделаешь RLS.

ps: не нужно растекаться мыслями по всем форумам сразу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824278
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийслучится отлуп, если ты правильно сделаешь RLS.

А зачем View делать? Я точно так же могу RLS на таблице настроить, нет?

Мимопроходящийps: не нужно растекаться мыслями по всем форумам сразу.


Вопрос - на стыке. Можно ведь просто сделать анализ SQL строки средствами Дельфи перед тем как она будет отдана из RB в базу Oracle.
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824286
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
07.06.2019 18:45, Victor Cookin пишет:
> Можно ведь просто сделать анализ SQL строки средствами Дельфи

сделай.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824293
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийсделай.


Во-первых, это некрасиво...
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824294
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что за дичь, у вас там пользователи что под правами админа работают чтоли?
доступ к объектам и строкам спокойно делается встроенными средствами практически любого вменяемого sql сервера.
Причем как Вам уже сказали выше, роли, разграничение доступа, хранимки, вьюшки, кое где и права на отдельные строки таблицы можно. Что вы опять сову на глобус натягиваете, хотите правильно, Вам сказали как, хотите неправильно, дело Ваше, но причем тут мы? :)
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39824299
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эндичто за дичь, у вас там пользователи что под правами админа работают чтоли?
Под собой они работают. Слава богу, не владельцы схемы. А когда я захожу, могу спокойно даже DROP TABLE сделать из Report Builder.

эндидоступ к объектам и строкам спокойно делается встроенными средствами практически любого вменяемого sql сервера.
Тут вообще-то скорее по Дельфям форум, а не по Ораклу. По Ораклу я спросил в том форуме

эндиПричем как Вам уже сказали выше, роли, разграничение доступа, хранимки, вьюшки, кое где и права на отдельные строки таблицы можно.
Роли достаточно. Хранимки, вьюшки - не дают абсолютно ничего. RLS - - возможно

эндиЧто вы опять сову на глобус натягиваете
Интересно иметь on the table все возможности
...
Рейтинг: 0 / 0
проверяльщик SQL строки на безопасность
    #39826258
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый вменяемый совет, имхо, это завести RO роль ReportBuilder и выполнять все юзерские SQL-и из-под нее. Ну и придется мириться с возможностью повешения сервера косым/злобным запросом (или отрубать длинные запросы средствами сервера)
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / проверяльщик SQL строки на безопасность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]