|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
То ли я чего-то не понимаю, то ли еще что... Как такое может быть? Установил 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
ВОПРОС: как apex_default_user сделал insert в таблицу схемы test? Захожу apex_default_user в SQL Plus, делаю insert в таблицу test.Demo_Customers, получаю логичную ошибку - привилегий недостаточно. ВОПРОС ОСТАЛСЯ ТЕМ ЖЕ. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 16:31 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
так приложение demo написано см. схемы авторизации/аутентификации другое дело если что-то меняете через url - напишите ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 16:42 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
Alex from SPbтак приложение demo написано см. схемы авторизации/аутентификации смотрел, не увидел ничего криминального. На что нужно обратить внимание? Alex from SPbдругое дело если что-то меняете через url - напишите Ничего не менял, как создалось, просто запустил и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 16:45 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
Mr_FrostТо ли я чего-то не понимаю, то ли еще что... Как такое может быть? Посмотрите ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 16:47 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
APEX приложение работает с привилегиями парсинг схемы, в Вашем случае с привилегиями пользователя test, а реализовано это на недокументированном пакадже dbms_sys_sql (ежели память не изменяет) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 16:50 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
Application Builder>Application 100>Application Attributes>Edit Definition> Parsing Schema=... чему равна? предлагаю топики по апекс сильно не плодить, а продолжать по 50-100 вопросов в каждом ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 16:52 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
Анонимный пользователь работает через процедуру FLOWS_020000.F (для apex 2.0, в 2.2 пользователь наверное называется FLOWS_020200..) у FLOWS_020000 достаточно прав для записи в таблицы схемы text, ананимный пользователь работает только через эту процедуру! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 16:54 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
и все команды выполняются как динамический sql с правами создателя хп flows_020000 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 16:55 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
Alex from SPbApplication Builder>Application 100>Application Attributes>Edit Definition> Parsing Schema=... чему равна? TEST. Alex from SPbпредлагаю топики по апекс сильно не плодить, а продолжать по 50-100 вопросов в каждом согласен. давайте создадим топик FAQ по APEX :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 17:02 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
Mr_Frost....На что нужно обратить внимание? когда создаете приложение внимание на схемы авторизации/аутентификации кто имеет право регистрироваться в приложении какой доступ к каким страницам он имеет все это самостоятельно придется разработать или из примера :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 17:03 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
Pirу FLOWS_020000 достаточно прав для записи в таблицы схемы text, ананимный пользователь работает только через эту процедуру! Нет. Из SQL Plus FLOWS_020000 не может создавать записи в таблице test.demo_... Привилегий недостаточно. Только через приложение apex похоже может. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 17:04 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
PirАнонимный пользователь работает через процедуру FLOWS_020000.F (для apex 2.0, в 2.2 пользователь наверное называется FLOWS_020200..) у FLOWS_020000 достаточно прав для записи в таблицы схемы text, ананимный пользователь работает только через эту процедуру! крайне недостаточно ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 17:12 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
YAPкрайне недостаточно ну я примерно описал схему работы) действительно, insert any table у него нету ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 17:16 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
Ну а как быть-то тогда? Как правильно организовать доступ к данным через apex? В СУБД архитектура классическая - есть владелец схемы, назовем его Owner, есть конечные пользователи - Иванов, Петров, Сидоров. Напрямую пользователям не дается никаких грантов на объекты схемы Owner - только через роли. Правильно я понял, что в apex я должен заново создать пользователей Иванов, Петров, Сидоров, на уровне приложения позаботиться о том, чтобы кроме них никто не зашел. Но, реально транзакзии будут делаться не Ивановым, Петровым, Сидоровым, а пользователем flows_020200 от имени apex_default_user через недокументированный dbms_sys_sql? Фигня какая-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 21:27 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
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
ВОПРОС: как apex_default_user сделал insert в таблицу схемы test? Захожу apex_default_user в SQL Plus, делаю insert в таблицу test.Demo_Customers, получаю логичную ошибку - привилегий недостаточно. ВОПРОС ОСТАЛСЯ ТЕМ ЖЕ. User вам всегда покажет logon пользователя. Инсертить может хранимая процедура, отследить это можно тем же триггером, но raise делать так: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 22:05 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
ГостЪ Инсертить может хранимая процедура, отследить это можно тем же триггером, но raise делать так: Код: plaintext
действительно, забавно... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 22:29 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
Mr_FrostНу а как быть-то тогда? Как правильно организовать доступ к данным через apex? В СУБД архитектура классическая - есть владелец схемы, назовем его Owner, есть конечные пользователи - Иванов, Петров, Сидоров. Напрямую пользователям не дается никаких грантов на объекты схемы Owner - только через роли. Правильно я понял, что в apex я должен заново создать пользователей Иванов, Петров, Сидоров, на уровне приложения позаботиться о том, чтобы кроме них никто не зашел. Но, реально транзакзии будут делаться не Ивановым, Петровым, Сидоровым, а пользователем flows_020200 от имени apex_default_user через недокументированный dbms_sys_sql? Фигня какая-то... можно сделать так называемого прокси-пользователя, выдать ему объектные привилегии необходимые для работы приложения, и указать только его в качестве парсинг-схемы ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2006, 22:55 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2006, 10:57 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
нужно зайти в воркспейс internal и добавить Вашему нужному воркспейсу новую парсинг-схему ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2006, 11:05 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
YAPнужно зайти в воркспейс internal и добавить Вашему нужному воркспейсу новую парсинг-схему не понял. парсинг-схему или database schema? У workspace можно задать только database schema, а вот у application - parsing. О че речь идет? Если я у workspace в database schema укажу моего "прокси-пользователя", тогда в Application Builder мне становятся недоступны объекты схемы-владельца. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2006, 11:29 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
выдайте прокси-пользователю все необходимые привилегии для работы приложения (синонимы опционально, ежели Вам удобнее с ними) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2006, 12:10 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
Разобрался вроде бы с добавлением схемы. Сделал так - у Workspace указал 2 схемы - owner и apex_public. У Application установил parsing schema = apex_public, а у всех регионов, запросов, lov и т.д. выбираю schema = owner. Вроде все заработало. YAPвыдайте прокси-пользователю все необходимые привилегии для работы приложения (синонимы опционально, ежели Вам удобнее с ними) А вот с привилегиями непонятно до сих пор. Похоже, что пользователю apex_public нужно явно выдать привилегии на таблицы, а не через роль? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2006, 12:19 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
и еще вдогонку - это получается, что в parsing схеме можно только жестко прописать пользователя? а как же сделать, чтобы парсилось в зависимости от прав пользователя, который авторизовался в приложении? Если я простой юзер, то только селект, если полукрутой - плюс update, а если зашел админ - то все что угодно? Неужели на уровне приложения свои процедуры писать и делать доступными/недоступными кнопки, закладки и т.д.?? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2006, 12:45 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
Mr_FrostНеужели на уровне приложения свои процедуры писать и делать доступными/недоступными кнопки, закладки и т.д.?? ну да, это назвается "Autorization schema" ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2006, 13:39 |
|
APEX - дыра в безопасности Oracle?
|
|||
---|---|---|---|
#18+
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% таблиц названы по-русски, столбцы тоже) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2006, 08:28 |
|
|
start [/forum/topic.php?fid=50&fpage=103&tid=1877852]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 451ms |
0 / 0 |