powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX - дыра в безопасности Oracle?
25 сообщений из 34, страница 1 из 2
APEX - дыра в безопасности Oracle?
    #34164741
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То ли я чего-то не понимаю, то ли еще что... Как такое может быть?
Установил Apex 2.2 на Oracle 10.1.0.2.0.
В marvel.conf указал пользователя apex_default_user.
Создал тестовую Sample application в схеме пользователя test, в результате появилось несколько таблиц DEMO_...
Запускаю Sample application, захожу на страницу Customer, делаю Create New Customer и спокойно добавляю новую запись в таблицу test.Demo_Customers.
НО! У пользователя apex_default_user одна системная привилегия - create session, ни одной объектной.
На таблицу test.Demo_Customers не выдано ни одного гранта ни ролям, ни пользователям.
ВОПРОС: кто сделал insert?
В триггере на insert таблицы test.Demo_Customers добавляю запись:
Код: plaintext
raise_application_error (- 20000 , user);
Повторяю эксперимент - выдается ошибка, где user - apex_default_user!
ВОПРОС: как apex_default_user сделал insert в таблицу схемы test?
Захожу apex_default_user в SQL Plus, делаю insert в таблицу test.Demo_Customers, получаю логичную ошибку - привилегий недостаточно.
ВОПРОС ОСТАЛСЯ ТЕМ ЖЕ.
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34164787
Alex from SPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так приложение demo написано
см. схемы авторизации/аутентификации

другое дело
если что-то меняете через url - напишите
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34164799
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex from SPbтак приложение demo написано
см. схемы авторизации/аутентификации
смотрел, не увидел ничего криминального. На что нужно обратить внимание?

Alex from SPbдругое дело
если что-то меняете через url - напишите
Ничего не менял, как создалось, просто запустил и все.
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34164815
Andrew Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr_FrostТо ли я чего-то не понимаю, то ли еще что... Как такое может быть?
Посмотрите
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34164825
YAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
APEX приложение работает с привилегиями парсинг схемы, в Вашем случае с привилегиями пользователя test, а реализовано это на недокументированном пакадже dbms_sys_sql (ежели память не изменяет)
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34164829
Alex from SPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Application Builder>Application 100>Application Attributes>Edit Definition>

Parsing Schema=... чему равна?
предлагаю топики по апекс сильно не плодить,
а продолжать по 50-100 вопросов в каждом
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34164837
Pir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анонимный пользователь работает через процедуру FLOWS_020000.F
(для apex 2.0, в 2.2 пользователь наверное называется FLOWS_020200..)
у FLOWS_020000 достаточно прав для записи в таблицы схемы text, ананимный пользователь работает только через эту процедуру!
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34164842
Pir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и все команды выполняются как динамический sql с правами создателя хп flows_020000
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34164864
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex from SPbApplication Builder>Application 100>Application Attributes>Edit Definition>

Parsing Schema=... чему равна?
TEST.
Alex from SPbпредлагаю топики по апекс сильно не плодить,
а продолжать по 50-100 вопросов в каждом
согласен. давайте создадим топик FAQ по APEX :))
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34164869
Alex from SPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr_Frost....На что нужно обратить внимание?

когда создаете приложение внимание на схемы авторизации/аутентификации
кто имеет право регистрироваться в приложении
какой доступ к каким страницам он имеет

все это самостоятельно придется разработать
или из примера :)
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34164874
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pirу FLOWS_020000 достаточно прав для записи в таблицы схемы text, ананимный пользователь работает только через эту процедуру!
Нет. Из SQL Plus FLOWS_020000 не может создавать записи в таблице test.demo_... Привилегий недостаточно.
Только через приложение apex похоже может.
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34164913
YAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PirАнонимный пользователь работает через процедуру FLOWS_020000.F
(для apex 2.0, в 2.2 пользователь наверное называется FLOWS_020200..)
у FLOWS_020000 достаточно прав для записи в таблицы схемы text, ананимный пользователь работает только через эту процедуру!

крайне недостаточно
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34164930
Pir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YAPкрайне недостаточно

ну я примерно описал схему работы)
действительно, insert any table у него нету
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34165553
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну а как быть-то тогда?
Как правильно организовать доступ к данным через apex?
В СУБД архитектура классическая - есть владелец схемы, назовем его Owner, есть конечные пользователи - Иванов, Петров, Сидоров. Напрямую пользователям не дается никаких грантов на объекты схемы Owner - только через роли.
Правильно я понял, что в apex я должен заново создать пользователей Иванов, Петров, Сидоров, на уровне приложения позаботиться о том, чтобы кроме них никто не зашел. Но, реально транзакзии будут делаться не Ивановым, Петровым, Сидоровым, а пользователем flows_020200 от имени apex_default_user через недокументированный dbms_sys_sql? Фигня какая-то...
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34165587
ГостЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr_FrostТо ли я чего-то не понимаю, то ли еще что... Как такое может быть?
Установил Apex 2.2 на Oracle 10.1.0.2.0.
В marvel.conf указал пользователя apex_default_user.
Создал тестовую Sample application в схеме пользователя test, в результате появилось несколько таблиц DEMO_...
Запускаю Sample application, захожу на страницу Customer, делаю Create New Customer и спокойно добавляю новую запись в таблицу test.Demo_Customers.
НО! У пользователя apex_default_user одна системная привилегия - create session, ни одной объектной.
На таблицу test.Demo_Customers не выдано ни одного гранта ни ролям, ни пользователям.
ВОПРОС: кто сделал insert?
В триггере на insert таблицы test.Demo_Customers добавляю запись:
Код: plaintext
raise_application_error (- 20000 , user);
Повторяю эксперимент - выдается ошибка, где user - apex_default_user!
ВОПРОС: как apex_default_user сделал insert в таблицу схемы test?
Захожу apex_default_user в SQL Plus, делаю insert в таблицу test.Demo_Customers, получаю логичную ошибку - привилегий недостаточно.
ВОПРОС ОСТАЛСЯ ТЕМ ЖЕ.

User вам всегда покажет logon пользователя.
Инсертить может хранимая процедура, отследить это можно тем же триггером, но raise делать так:
Код: plaintext
raise_application_error (- 20000 , dbms_utility.format_call_stack);
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34165608
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГостЪ
Инсертить может хранимая процедура, отследить это можно тем же триггером, но raise делать так:
Код: plaintext
raise_application_error (- 20000 , dbms_utility.format_call_stack);

действительно, забавно...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ORA-20000: ----- PL/SQL Call Stack ----- 
object line object handle number name 
1C5E620C 5 TEST.INSERT_DEMO_CUST 
1D03582C 1 anonymous block 
1C3CDDCC 1200 package body SYS.DBMS_SYS_SQL 
1A989268 172 package body FLOWS_020200.WWV_EXECUTE_IMMEDIATE 
1B6050C8 634 package body FLOWS_020200.WWV_FLOW_DML 
1B6050C8 787 package body FLOWS_020200.WWV_FLOW_DML 
1BBB1D50 4481 package body FLOWS_020200.WWV_FLOW 
1BBB1D50 11534 package body FLOWS
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34165636
tkprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr_FrostНу а как быть-то тогда?
Как правильно организовать доступ к данным через apex?
В СУБД архитектура классическая - есть владелец схемы, назовем его Owner, есть конечные пользователи - Иванов, Петров, Сидоров. Напрямую пользователям не дается никаких грантов на объекты схемы Owner - только через роли.
Правильно я понял, что в apex я должен заново создать пользователей Иванов, Петров, Сидоров, на уровне приложения позаботиться о том, чтобы кроме них никто не зашел. Но, реально транзакзии будут делаться не Ивановым, Петровым, Сидоровым, а пользователем flows_020200 от имени apex_default_user через недокументированный dbms_sys_sql? Фигня какая-то...

можно сделать так называемого прокси-пользователя, выдать ему объектные привилегии необходимые для работы приложения, и указать только его в качестве парсинг-схемы
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34173930
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tkprof
можно сделать так называемого прокси-пользователя, выдать ему объектные привилегии необходимые для работы приложения, и указать только его в качестве парсинг-схемы
Не получается, может быть я что-то не так делаю?
При попытке указать в парсинг-схеме кого-либо другого (не того, кто указан в Schema у Workspace) выдает ошибку "No privilege to build in schema apex_user Use the list of values on the previous page to select a schema that you have privilege to build in."
Когда я открываю список, то вижу в нем только 1-го пользователя - того, кто указан в Schema у Workspace.
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34173963
YAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно зайти в воркспейс internal и добавить Вашему нужному воркспейсу новую парсинг-схему
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34174045
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YAPнужно зайти в воркспейс internal и добавить Вашему нужному воркспейсу новую парсинг-схему
не понял. парсинг-схему или database schema? У workspace можно задать только database schema, а вот у application - parsing. О че речь идет?
Если я у workspace в database schema укажу моего "прокси-пользователя", тогда в Application Builder мне становятся недоступны объекты схемы-владельца.
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34174238
YAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выдайте прокси-пользователю все необходимые привилегии для работы приложения (синонимы опционально, ежели Вам удобнее с ними)
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34174281
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался вроде бы с добавлением схемы.
Сделал так - у Workspace указал 2 схемы - owner и apex_public.
У Application установил parsing schema = apex_public, а у всех регионов, запросов, lov и т.д. выбираю schema = owner.
Вроде все заработало.

YAPвыдайте прокси-пользователю все необходимые привилегии для работы приложения (синонимы опционально, ежели Вам удобнее с ними)

А вот с привилегиями непонятно до сих пор.
Похоже, что пользователю apex_public нужно явно выдать привилегии на таблицы, а не через роль?
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34174400
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и еще вдогонку - это получается, что в parsing схеме можно только жестко прописать пользователя? а как же сделать, чтобы парсилось в зависимости от прав пользователя, который авторизовался в приложении? Если я простой юзер, то только селект, если полукрутой - плюс update, а если зашел админ - то все что угодно?
Неужели на уровне приложения свои процедуры писать и делать доступными/недоступными кнопки, закладки и т.д.??
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34174635
YAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr_FrostНеужели на уровне приложения свои процедуры писать и делать доступными/недоступными кнопки, закладки и т.д.??

ну да, это назвается "Autorization schema"
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34176425
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex from SPb
предлагаю топики по апекс сильно не плодить,
а продолжать по 50-100 вопросов в каждом

Вопрос уже не про безопасность, но в этот же топик по просьбе Alex from SPb.
Обнаружил неприятную проблему с русским языком в Apex.
При создании Create Page->Form->Form on a Table or View если поля в таблице названы по-русски, то на этапе выбора Primary Key возникает ошибка "Column names must be valid Oracle identifiers.". Если поле в таблице вместо УИД назвать ID, то этот этап проходит нормально.
Но на следующей странице на этапе выбора отображаемых столбцов все то же самое :(
Как быть? Никто не сталкивался? (Переименовывать столбцы не предлагайте - в базе 99% таблиц названы по-русски, столбцы тоже)
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX - дыра в безопасности Oracle?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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