powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX - дыра в безопасности Oracle?
9 сообщений из 34, страница 2 из 2
APEX - дыра в безопасности Oracle?
    #34176500
mutate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть еще более худшая засада, с русскими буквами в apex, чем имена таблиц.

Например в "Branch" обработчике передавать параметры через этот механизм:
Set these items (comma separated name list)
With these values (comma separated value list)

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

/builder/f4000.sql :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
begin
wwv_flow_api.create_page_validation(
  p_id =>  1234567890  + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_flow_step_id =>  4776 ,
  p_validation_name => 'selected invalid pk column',
  p_validation_sequence=>  11 ,
  p_validation => 'wwv_flow_sw_util.is_valid_name(:F4000_P4703_TABLE_PK_COLUMN)',
  p_validation_type => 'PLSQL_EXPRESSION',
  p_error_message => 'Column names must be valid Oracle identifiers.',
  p_validation_condition=> 'F4000_P4703_TABLE_PK_COLUMN',
  p_validation_condition_type=> 'ITEM_IS_NOT_NULL',
  p_when_button_pressed=>  1234567890  + wwv_flow_api.g_id_offset,
  p_associated_item=>  1234567890  + wwv_flow_api.g_id_offset,
  p_error_display_location=>'INLINE_WITH_FIELD_AND_NOTIFICATION',
  p_validation_comment=> 'When we allow multibyte item names, this validation can be removed.');
null;
end;
/
надо попробывать изменить проверку - обрамить двойными кавычками
p_validation => 'wwv_flow_sw_util.is_valid_name('"'||:F4000_P4703_TABLE_PK_COLUMN||'"')',
если есть возможность попробуй
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34176688
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал.
1. В таком виде, как ты привел - синтаксическая ошибка,
если заменить на
p_validation => 'wwv_flow_sw_util.is_valid_name(' || '":F4000_P4708_TABLE_PK_COLUMN "' || ')',
то выполняется.
Но лучше не становится, не помогло.
Может, я не так сконкатенировал, как ты имел в виду?

2. У меня в скрипте а4000.sql нет точно такого текста, как ты привел.
Есть 2 вот таких:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
begin
wwv_flow_api.create_page_validation(
  p_id =>  361297831582818853  + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_flow_step_id =>  4713 ,
  p_validation_name => 'selected invalid pk column name',
  p_validation_sequence=>  11 ,
  p_validation => 'wwv_flow_sw_util.is_valid_name(:F4000_P4708_TABLE_PK_COLUMN);',
  p_validation_type => 'PLSQL_EXPRESSION',
  p_error_message => 'Column names must be valid Oracle identifiers.',
  p_validation_condition=> 'F4000_P4708_TABLE_PK_COLUMN',
  p_validation_condition_type=> 'ITEM_IS_NOT_NULL',
  p_when_button_pressed=>  61208515081720646  + wwv_flow_api.g_id_offset,
  p_associated_item=>  90287388620  + wwv_flow_api.g_id_offset,
  p_error_display_location=>'INLINE_WITH_FIELD_AND_NOTIFICATION',
  p_validation_comment=> 'When we allow multibyte item names, this validation can be removed.');
null;
end;
/
отличаются цифры в p_id => 361297831582818853
и в p_validation у тебя F4000_P4703_TABLE_PK_COLUMN, а у меня :F4000_P4708

и второй:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
begin
wwv_flow_api.create_page_validation(
  p_id =>  361315805937010192  + wwv_flow_api.g_id_offset,
  p_flow_id => wwv_flow.g_flow_id,
  p_flow_step_id =>  4776 ,
  p_validation_name => 'selected invalid pk column',
  p_validation_sequence=>  11 ,
  p_validation => 'wwv_flow_sw_util.is_valid_name(:F4000_P4703_TABLE_PK_COLUMN)',
  p_validation_type => 'PLSQL_EXPRESSION',
  p_error_message => 'Column names must be valid Oracle identifiers.',
  p_validation_condition=> 'F4000_P4703_TABLE_PK_COLUMN',
  p_validation_condition_type=> 'ITEM_IS_NOT_NULL',
  p_when_button_pressed=>  61369041635663341  + wwv_flow_api.g_id_offset,
  p_associated_item=>  137467627277  + wwv_flow_api.g_id_offset,
  p_error_display_location=>'INLINE_WITH_FIELD_AND_NOTIFICATION',
  p_validation_comment=> 'When we allow multibyte item names, this validation can be removed.');
null;
end;
тоже отличаются цифры в p_id. тоже не помог.
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34176721
Alex from SPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1234567890 - спец. изменил, чтобы искать по смыслу, а не по конкр. значениям
надеюсь - не просто изменил f4xxx.sql , а пересоздал от FLOWS_020200
p_validation => 'wwv_flow_sw_util.is_valid_name(''"''||:xxx||''"'');',

попробую вечером посмотреть
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34176765
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, конечно по смыслу - искал по "selected invalid pk column".
Но, в общем, идею понял, попробую тоже покопать.
Кстати, раз можно сделать wwv_flow_api.create_page_validation, то можно и удалить validation?
Уж primary key- то разработчик и сам проверит визуально :-)))
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34182005
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex from SPbпопробую вечером посмотреть
Не появилось новостей хороших случайно?
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34212577
Alex from SPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr_Frost

изменить сам builder не получилось
точнее меняешь, но результата нет

получилось только, если форму делать из запроса (без волшебства)
Home>Application Builder>Application 100>Page 23>Create Page>Form on Query
Код: plaintext
1.
2.
select "Вася" as Vasya,"Петя" as Petya from T
where "Вася" = :P1_ID1; --P1_ID1 скрытый элемент
посмотри
у них на форуме есть обсуждение Forms with Multiple Column Primary Keys
т.к. визард дает выбирать только 2 колонки из PK, то они обходят это
с помощью "Form on Query"
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34212695
Mr_Frost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Печально..
Form on Query - это самому дописывать в apex'e процедуры на insert, update, delete?
А как, кстати, насчет того, что раз можно изменить wwv_flow_api.create_page_validation,
то можно и удалить validation?
...
Рейтинг: 0 / 0
APEX - дыра в безопасности Oracle?
    #34213483
Alex from SPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr_Frost
посмотри пример создания форм вручную с помощью пакета HTMLDB_ITEM
Using the HTMLDB_ITEM package.
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX - дыра в безопасности Oracle?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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