Oracle アプリケーション・エクスプレス

オラクル APEX
開発者オラクル社
安定版リリース
24.2 / 2025年1月15日 (2025年1月15日
オペレーティング·システムWindowsLinux、Oracle Solaris、HP-UX、IBM AIX [ 1 ]
ライセンスOracle Technical Network License(プロプライエタリ[ 2 ]
Webサイトapex .oracle .com

Oracle APEX(Oracle Application Express)は、Oracle Corporationが開発したローコード・アプリケーション開発プラットフォームです。APEX は、クラウドモバイル、デスクトップ・アプリケーションの開発と導入に使用されます。ウィザードドラッグ・アンド・ドロップ・レイアウト・ビルダー、プロパティ・エディタなどのツールを含むWebベースの統合開発環境(IDE)を備えています。

背景

APEXはOracle Databaseの機能です。Autonomous Database Cloud Services内のOracle Cloudの一部であり、スタンドアロンのAPEXアプリケーション開発サービスでもあります。[ 3 ]

Oracle APEX は、2000 年の作成以降、次のように名前が変更されています。

  • フロー[ 4 ]
  • オラクルプラットフォーム[ 5 ]
  • プロジェクト・マーベル[ 6 ]
  • HTML DB [ 7 ]
  • アプリケーション・エクスプレス(APEX)別名Oracle APEX [ 7 ]

歴史

APEXは、Oracle開発者のマイケル・ヒチュワ氏によって、以前のプロジェクトであるWebDBに続いて開発されました。社内向けWebカレンダーを構築していたヒチュワ氏は、Oracleの同僚であるジョエル・カルマン氏と共同でFlowsを開発しました。二人はWebカレンダーを共同開発し、カレンダー開発に必要な機能をFlowsに追加していきました。Flowsの初期ビルドにはフロントエンドがなかったため、アプリケーションへのすべての変更はSQL Plusの挿入、更新、削除コマンドを使用して実行されていました。[ 8 ]

バージョン5.2では、リリースの年と四半期に合わせて番号体系が変更され、18.1に名称が変更されました。この変更は、Oracleの番号体系の変更と一致しています。

ローコード環境

Oracle APEX はローコード開発プラットフォームであり、その起源を第 4 世代プログラミング言語迅速なアプリケーション開発(RAD) ツールにまで遡ることができる環境の一種です。

APEXを使用すると、ユーザーは「ノーコード」のグラフィカル・ユーザー・インターフェースを備えたWebアプリケーションを構築できます。しかし、要件がより複雑な場合、APEXは宣言型フレームワークを通じてローコード・オブジェクトの拡張を可能にします。このフレームワークにより、開発者はカスタムロジック、ビジネスルール、およびユーザー・インターフェースを定義できます。開発者は、 SQLPL/SQLHTMLJavaScriptCSS 、そしてAPEXプラグインを組み込むことで、これらを実現できます。[ 9 ] [ 10 ]

安全

APEXアプリケーションは、 PHPASP.NETJavaといったより直接的なテクノロジーで構築された他のWebベースアプリケーションと同レベルのアプリケーションセキュリティリスクにさらされています。しかし、APEX 4.0以降、アプリケーションビルダーインターフェースには、アプリケーションのセキュリティ態勢の基本的な評価を提供するAdvisorと呼ばれるユーティリティが含まれています。

APEXアプリケーションに影響を与える2つの主な脆弱性は、SQLインジェクションクロスサイトスクリプティング(XSS)です。[ 11 ]

SQLインジェクション

APEXアプリケーションは、本質的にPL/SQL構文をサーバーサイドの基本言語として使用し、PL/SQLブロックを介してデータにアクセスします。[ 12 ] APEXアプリケーションは、認可を実装し、Webページ要素を条件付きで表示するためにPL/SQLを使用します。そのため、これらのPL/SQLブロックが悪意のあるユーザー入力 を正しく検証および処理しない場合、APEXアプリケーションはSQLインジェクションの影響を受ける可能性があります。[ 13 ]

OracleはAPEXに「置換変数」 (構文は「&NAME.」)と呼ばれる特殊な変数タイプを実装しましたが、これは安全ではなく、SQLインジェクションを引き起こす可能性があります。PL/SQLブロック内でインジェクションが発生すると、攻撃者は任意の数のクエリまたは文をインジェクションして実行できます。特殊文字をエスケープし、バインド変数を使用することで、XSSおよびSQLインジェクションの脆弱性を軽減することはできますが、完全に排除することはできません。

クロスサイトスクリプティング(XSS)

XSS脆弱性は、他のWebアプリケーション言語と同様に、APEXアプリケーションにも発生します。これに対処するため、Oracleはhtf.escape_sc()関数を提供しており、リテラル文字をHTMLエンティティ名に置き換えて望ましくない動作を回避します。[ 14 ]

開発者は、認可スキームを使用して、APEXアプリケーション内のページやアイテムなどのリソースへのアクセスを管理できます。適切なセキュリティを確保するには、これらのスキームをすべての関連リソースに一貫して適用する必要があります。一貫性のないアクセス制御の例として、ボタンアイテムには認可スキームが適用されているものの、そのボタンにリンクされたプロセスには適用されていない場合が挙げられます。この不一致により、ユーザーはボタンを完全にバイパスして、JavaScript経由で直接プロセスをトリガーできる可能性があります。

サードパーティライブラリ

開発者はサードパーティ製のライブラリを使用してAPEXアプリケーションを改善および拡張することができます。その中には、 JQuery Mobile(HTML 5ベースのユーザーインターフェース)[ 15 ] JQuery UI(Web用のユーザーインターフェース)[ 16 ] AnyChartJavaScript / HTML 5チャート)[ 17 ] CKEditor(Webテキストエディタ)[ 18 ]などがあります。Oracleは、最新のAPEXパッチを適用すると、プラットフォームにバンドルされている外部ライブラリも同時に更新され、理論的にはアプリケーションの安定性とセキュリティが向上すると主張しています。[ 19 ]しかし、多くのライブラリはAPEXパッチのリリースよりも頻繁に更新されるため、開発者は互換性とセキュリティを維持するために必要に応じて更新を監視し、手動で適用する必要があります。[ 20 ] [ 21 ]

APEX および Oracle Database Express Edition (XE)

Oracle APEXは、無料のエントリーレベルデータベースであるOracle Database Express Edition(XE)内で実行できます。XE上で実行する場合、APEXの機能は意図的に制限されていませんが、データベースエンジンの制限により、一部のAPEX機能が動作しない場合があります。さらに、Oracle XEにはCPU、メモリ、ディスク使用量の制限があります。[ 22 ]

参照

参考文献

  1. ^ 「Oracle Application Express - ダウンロード」 . Oracle . 2015年12月10日閲覧。
  2. ^ 「Oracle Application Expressドキュメント」。Oracleヘルプセンター。
  3. ^ 「Oracle Application Express (APEX): 概要」(PDF) . Oracle Corporation .
  4. ^ 「Flows for APEXへようこそ」。apex -flowsforapex2021年9月24日時点のオリジナルよりアーカイブ。 2021年9月24日閲覧
  5. ^ 「Oracle API Platform Cloud Serviceの実装」 . Packt . 2021年9月24日閲覧
  6. ^ 「Project Marble のメリットを享受する方法」 forums.oracle.com 2002 年 9 月 17 日。
  7. ^ a b「付録:Oracle APEX」 . docs.oracle.com . 2025年1月26日閲覧
  8. ^ "Michael Hichwa" . Apress . Michael Hichwaは、Oracle Application Express (APEX)、別名HTML DBのオリジナル開発者兼設計者です。Michaelは、自身が開発した以前のブラウザベースのアプリケーション開発ツールであるOracle WebDBを100%書き直してAPEXを開発しました。Tom Kyteの貴重な技術支援と指導を受け、Joel Kallmanが共同開発者として加わりました。MichaelとJoelは1999年からAPEX開発を主導してきました。
  9. ^ Kallman, Joel. 「From Low Code to High Control」 . 2017年11月27日閲覧
  10. ^ 「Oracle Application Expressによるローコード」apex.oracle.com . 2017年11月27日閲覧
  11. ^ 「Apexによる脆弱性攻撃のセキュリティ強化 – パート3」content.dsp.co.uk . 2024年10月8日閲覧
  12. ^ Alpern, D.; Agrawal, S.; Baer,​​ H.; Castledine, S.; Chang, T.; Cheng, B.; Dani, R.; Decker, R.; Iyer, C. 「PL/SQLの概要」Oracleヘルプセンター2025年1月24日閲覧
  13. ^ 「Oracle APEXの使用」 . enterprisearchitecture.harvard.edu . 2025年1月24日閲覧。
  14. ^ 「Fusion MiddleWare PL/SQL Web Toolkitリファレンス」 . docs.oracle.com . 2024年10月8日閲覧。
  15. ^ 「Oracle Application Express 5.0を使用したモバイルWebアプリケーションの構築」。Oracle。
  16. ^ 「Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド」。Oracle。
  17. ^ 「Oracle APEX: Oracle Application Express (APEX) での AnyChart 製品の使用」。AnyChart。
  18. ^ 「Oracle が Application Express に FCKeditor を選択」。CKEditor.com。
  19. ^ 「Oracle Application Express(APEX)パッチ」 . Oracle Base . 2024年12月30日閲覧
  20. ^ 「Goodies - APEX 4.2.2に含まれるライブラリ」 Dimitri Gielisのブログ。2013年5月8日。 2015年12月10日閲覧
  21. ^ 「APEX 5 初公開」 Grassroots Oracle、2014年3月17日。 2015年12月10日閲覧
  22. ^ 「Express Editionの制限事項」 Oracle Corporation 2013年5月22日閲覧

参考文献