Введение
Oracle APEX (также известный как APEX) — это корпоративная платформа разработки приложений с минимальным объемом кодирования от Oracle Corporation. APEX используется для разработки и развертывания облачных, мобильных и настольных приложений. Платформа представляет собой веб-ориентированную интегрированную среду разработки (IDE) с широким набором функций, включая мастера, инструменты перетаскивания и редакторы свойств, упрощающие процесс создания приложений и страниц.
Oracle APEX (also known as APEX) is an enterprise low code application development platform from Oracle Corporation. APEX is used for developing and deploying cloud, mobile and desktop applications. The platform is a web based integrated development environment (IDE) with a range of features including wizards, drag and drop layout and property editors to simplify the process of building applications and pages.
Окружение с низким уровнем кода
Хотя APEX существует с 2004 года в той или иной форме, недавно он был отнесен к новой категории платформ разработки приложений, называемых low-code. Эти low-code среды восходят к языкам программирования 4GL и инструментам быстрой разработки приложений (RAD). Поскольку APEX изначально позиционировался как инструмент RAD, такое развитие событий вполне закономерно. APEX позволяет создавать веб-приложения без написания кода. При более сложных требованиях APEX позволяет расширять low-code объекты с помощью декларативной платформы. Эта платформа позволяет разработчику определять собственную логику, бизнес-правила и пользовательские интерфейсы, используя SQL, PL/SQL, HTML, JavaScript, CSS, а также плагины APEX. APEX предоставляет разработчикам возможность переходить от разработки без кода к low-code и, при необходимости, к более традиционному кодированию.
Безопасность
Существует мнение, что абстрактный характер приложений APEX приводит к относительно безопасной пользовательской среде. Однако приложения APEX подвержены тем же классам уязвимостей, что и другие веб-приложения, основанные на более прямых технологиях, таких как PHP, ASP.NET и Java. Основными классами уязвимостей, влияющими на приложения APEX, являются: SQL-инъекция, межсайтовый скриптинг (XSS) и контроль доступа. Приложения APEX по своей сути используют конструкции PL/SQL в качестве базового языка на стороне сервера. Помимо доступа к данным через блоки PL/SQL, приложение APEX использует PL/SQL для реализации авторизации и условного отображения элементов веб-страницы. Это означает, что, как правило, приложения APEX уязвимы для SQL-инъекций, когда эти блоки PL/SQL некорректно проверяют и обрабатывают вредоносный пользовательский ввод. Oracle реализовал специальный тип переменных для APEX, называемый Substitution Variables (с синтаксисом &NAME), которые небезопасны и приводят к SQL-инъекциям. Если инъекция происходит внутри блока PL/SQL, злоумышленник может внедрить произвольное количество запросов или операторов для выполнения. Правильный способ кодирования для предотвращения XSS и SQL-инъекций – экранирование специальных символов и использование связывающих переменных. Уязвимости межсайтового скриптинга (XSS) возникают в приложениях APEX так же, как и в других веб-приложениях. Oracle предоставляет функцию `htf.escape_sc` для экранирования пользовательских данных, отображаемых в HTML-ответе. Отчеты, генерируемые APEX, также обеспечивают защиту от XSS посредством настройки "Display As" в столбцах отчетов. Изначально отчеты создавались по умолчанию без экранирования столбцов, однако в последних версиях тип столбца по умолчанию устанавливается с экранированием. Определения столбцов можно программно запрашивать для проверки столбцов, которые не экранируют значения. Для контроля доступа к ресурсам в приложении APEX разработчик может назначать схемы авторизации ресурсам (например, страницам и элементам). Эти схемы должны применяться последовательно, чтобы обеспечить надлежащую защиту ресурсов. Типичным примером непоследовательного контроля доступа является установка схемы авторизации для элемента "Кнопка", но не для связанного с ней операции, выполняемой при нажатии на кнопку. Злоумышленник может выполнить операцию (через JavaScript) без необходимости доступа к самой кнопке. Начиная с APEX 4.0, интерфейс Application Builder предоставляет ограниченную оценку состояния безопасности с помощью утилиты Advisor.
Библиотеки третьих сторон
Разработчики могут улучшать и расширять свои приложения APEX, используя библиотеки сторонних разработчиков. К ним относятся jQuery Mobile (пользовательский интерфейс на основе HTML5), jQuery UI (пользовательский интерфейс для веб-приложений), AnyChart (JavaScript/HTML5-диаграммы), CKEditor (веб-редактор текста) и другие. Эксперты отмечают, что одним из преимуществ установки последних патчей APEX является обновление внешних библиотек, поставляемых вместе с APEX. Однако многие из этих библиотек выпускают новые версии чаще, чем выходят патчи для APEX.
APEX и Oracle Database Express Edition (XE) (полное издание)
Oracle APEX может работать в составе Oracle Database Express Edition (XE) — бесплатной базы данных начального уровня. Несмотря на то, что функциональность APEX не ограничивается намеренно при работе в XE, ограничения движка базы данных могут препятствовать работе некоторых функций APEX. Также Oracle XE имеет ограничения на использование центрального процессора, памяти и дискового пространства.