アプリケーション属性は、アプリケーション全体に適用されます。アプリケーションを作成した後、アプリケーション属性を確認し、必要に応じて更新します。
内容は次のとおりです。
アプリケーションの編集ページの属性を使用して、アプリケーションの名前と可用性の編集、および静的置換文字列の定義を行うことができます。また、アプリケーションの編集ページには、定義済のビルド・オプション、関連するテーマ、テンプレートのデフォルト、およびコンポーネントのデフォルト値が表示されます。必須の値には赤いアスタリスク(*)が付いています。
内容は次のとおりです。
アプリケーション定義を編集するには、次のステップを実行します。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
アプリケーション名の右側にある「アプリケーション・プロパティの編集」ボタンをクリックします。
アプリケーションの編集ページが表示されます。
アプリケーションの編集ページは、「名前」、「プロパティ」、「可用性」、「エラー処理」、「グローバル通知」、「置換」、「ロゴ」、「ビルド・オプション」、「テーマ」、「テンプレートのデフォルト」および「コンポーネントのデフォルト値」の各セクションから構成されます。これらのセクションにはページをスクロール・ダウンするか、ページ上部のナビゲーション・ボタンをクリックすることでアクセスできます。
ページ上部のボタンを選択すると、選択されたセクションが表示され、その他のセクションはすべて一時的に非表示になります。ページのすべてのセクションを表示するには、「すべて表示」をクリックします。
次のセクションでは、アプリケーションの編集ページで使用可能な属性について説明します。
内容は次のとおりです。
「名前」を使用して、アプリケーションの基本特性(アプリケーション名、英数字の別名(オプション)、バージョン番号など)を定義します。表7-1に、「名前」のすべての属性を示します。
表7-1「アプリケーション定義」の「名前」
属性 | 説明 |
---|---|
アプリケーションに説明的な短い名前を指定します。この名前によって、アプリケーションを開発環境に存在する他のアプリケーションと区別します。 |
|
代替の英数字アプリケーション識別子を割り当てます。アプリケーションIDのかわりにこの識別子を使用できます。 たとえば、アプリケーション105に
|
|
アプリケーションのバージョン番号がページに表示されます。次に示す書式マスクを使用して、自動的にバージョンを最終更新日に結び付けることもできます。
アプリケーションのバージョンで「YYYY.MM.DD」を使用している場合、アプリケーション・ビルダーは、この書式マスクをすべてのアプリケーション属性の最終更新日に置換します。 |
|
アプリケーション・ビルダーによって分散されたイメージ・ディレクトリを指すためにWebサーバーが使用する仮想パスを決定します。インストール時、仮想パスは 静的テキスト(ページ、リージョン・ヘッダー、リージョン・フッターなど)にイメージを埋め込む場合は、置換文字列
<img src="#IMAGE_PREFIX#go.gif">
参照: 「IMAGE_PREFIX」、「イメージの管理」および「イメージの参照」 |
|
インターネット・メディア・タイプを入力します。インターネット・メディア・タイプは、2つの部分で構成される、インターネット上のファイル形式を表す識別子です。メディア・タイプは、少なくともタイプとサブタイプの2つの部分で構成され、オプションで1つ以上のパラメータを指定します。メディア・タイプは、ページ描画の際にHTTPヘッダーのContent-Typeで使用されます。 ページ・レベルのメディア・タイプが、アプリケーション・レベルのメディア・タイプを上書きします。この属性のデフォルト値は |
|
プロキシ・サーバーを指定する場合は、このフィールドを使用します。 たとえば、URLリージョン・ソース・タイプを使用する場合、プロキシ・サーバーが必要になる場合があります。URLリージョン・ソースは、URLの結果(URLにナビゲートすると戻されるページ)をリージョン・ソースとして埋め込みます。ファイアウォールを使用している場合に、URLがアプリケーション・ビルダーに対してファイアウォールの外側にある場合は、プロキシ・サーバーを指定する必要があります。 PL/SQLパッケージ変数 |
|
アプリケーション内のすべてのSQLおよびPL/SQLが解析対象となるスキーマを指定します。 |
「プロパティ」を使用して、属性「ロギング」、「デバッグ」、「完全置換」、「アプリケーション・グループ」、「フィードバック」および「デフォルトのエラー表示位置」を有効化します。表7-2に、「名前」のすべての属性を示します。
表7-2「アプリケーション定義」の「プロパティ」
属性 | 説明 |
---|---|
ユーザー・アクティビティをOracle Application Expressアクティビティ・ログに記録するかどうかを決定します。「はい」に設定した場合、すべてのページ・ビューがログに記録されるため、管理者はアプリケーションごとにユーザー・アクティビティを監視できます。 高容量アプリケーションでは、ロギングを無効にすることをお薦めします。 |
|
カレント・アプリケーションのデバッグ・モードを制御します。使用可能なオプションは次のとおりです。
デバッグ・モードでのアプリケーションの実行は、アプリケーションが開発中の場合に役立ちます。ただし、本番アプリケーションの場合は、デバッグを無効にし、ユーザーがアプリケーション・ロジックを参照できないようにすることをお薦めします。 |
|
完全置換をサポートするかどうかを決定します。完全置換を使用します。非完全置換は非推奨の機能です。 完全置換では、次の構文を使用します。 &ITEM. 非完全置換では、次の構文を使用します。 &ITEM 参照: 「置換文字列の理解」 |
|
このアプリケーションに現在関連付けられているアプリケーション・グループを表示します。別のアプリケーション・グループを選択するには、リストから選択します。既存のグループからアプリケーションを削除するには、「未割当て」を選択します。 |
|
このアプリケーションに対するエンド・ユーザーのフィードバックへのサポートを有効にします。「はい」または「いいえ」を選択します。 参照: 「フィードバックの管理」 |
|
Application Expressまたはプラグインによって実行される基本検証の検証エラー・メッセージを表示する位置を指定します。検証エラー・メッセージは、「通知」領域(ページ・テンプレートの一部として定義)またはフィールド・ラベル内に表示できます。 |
「可用性」を使用して、アプリケーション・ステータスおよびビルド・ステータスを定義することによって、アプリケーションを管理します。たとえば、ステータス「制限されたアクセス」を選択すると、アプリケーションにアクセスして実行できるユーザーを指定できます。詳細は、表7-3を参照してください。
表7-3「アプリケーション定義」の「可用性」
属性 | 説明 |
---|---|
アプリケーションが使用可能または使用不可であることを指定します。オプションは次のとおりです。
参照: Oracle Application Express管理ガイドの「複数のアプリケーションのビルド・ステータスの変更」と「デプロイ時のアプリケーションのビルド・ステータス・セットの変更」、および「アプリケーション、ページおよびページ・コンポーネントへのアクセスの制御」 |
|
カレント・アプリケーションのビルド・ステータスを指定します。オプションは次のとおりです。
参照: Oracle Application Express管理ガイドの「デプロイ時のアプリケーションのビルド・ステータス・セットの変更」 |
|
この属性は、「ステータス」と組み合せて使用します。「ステータス」を「使用不可」、「使用不可(PL/SQLで表示されるステータス)」または「使用不可(URLにリダイレクト)」に設定すると、この属性に入力したテキストが表示されます。「ステータス」を「使用可能」に設定した場合、この属性に入力したテキストは表示されません。 |
|
この属性はステータス「制限されたアクセス」と組み合せて使用します。ステータスを「制限されたアクセス」に設定すると、この属性に示されているユーザーのみがアプリケーションを実行できます。この属性を使用するには、次のステップを実行します。
|
表7-4で説明する属性を使用して、アプリケーションがエラーのログを記録する方法を制御または変更します。ここで指定するエラー処理ファンクションは、同様のページ・レベル属性によって上書きされます。詳細は、ページ属性の概要を参照してください。
表7-4 「アプリケーション定義」の「エラー処理」
属性 | 説明 |
---|---|
検証、プロセス、プラグインに対して、またはOracle Application Expressエンジンから表示される検証エラー・メッセージの表示位置を指定します。オプションは次のとおりです。
|
|
エラー処理ファンクション |
既存のエラー・メッセージと表示位置を変更するか、エラーが発生した場合にそれをログに記録するための、PL/SQLエラー・ファンクションの名前を入力します。「エラー処理ファンクション」は常に、アプリケーション、検証またはApplication Expressのエラーがユーザーに表示される前にコールされます。これは、既存のエラー・メッセージと表示位置を変更するために使用できます。 このファンクションは、データベース内のパッケージ・ファンクションまたはスタンドアロンのファンクションを参照できます。次に例を示します。 log_apex_error データベースのPL/SQLパッケージまたはスタンドアロンのファンクションを参照する場合、 #OWNER#.log_apex_error
function <name of function> (
p_error in apex_error.t_error )
return apex_error.t_error_result
参照: 『Oracle Application Express APIリファレンス』の 注意: ここで指定するエラー処理ファンクションは、ページ・レベルで指定されるエラー処理により上書きされます。詳細は、ページ属性の概要を参照してください。 |
「グローバル通知」属性は、アプリケーション・ユーザーに対するシステム・ステータスの通知に使用します。たとえば、この属性を使用して、スケジュールされた停止時間をユーザーに通知したり、アプリケーションの可用性に関するその他のメッセージを通知できます。アプリケーションで使用されるページ・テンプレートに#GLOBAL_NOTIFICATION#
置換文字列が含まれている場合は、ここに入力するテキストがその文字列の場所に表示されます。
グローバル通知を作成するには、次のステップを実行します。
ページ・テンプレートに#GLOBAL_NOTIFICATION#
置換文字列を含めます。
アプリケーションの編集ページにナビゲートし、「グローバル通知」属性にメッセージを入力します。
「変更の適用」をクリックします。
これらのフィールドは、アプリケーションで使用する静的置換文字列を定義する際に使用します。アプリケーション内の多くの場所に出現する文字列やラベルに静的置換文字列を使用できます。置換文字列を作成するには、「置換文字列」列に文字列名を、「置換値」列に文字列値を入力します。
静的置換文字列を定義すると、このページで定義した「置換値」を変更するだけで、アプリケーション内の複数の場所のテキスト文字列をまとめて変更できます。
「ロゴ」属性は、アプリケーション・ロゴを定義する際に使用します。アプリケーション・ロゴは、テキスト・ベースにもイメージ・ベースにもできます。この機能を使用するには、ページ・テンプレートに#LOGO#
置換文字列が含まれている必要があります。
アプリケーション・ロゴを定義するには、次のステップを実行します。
「ロゴ・タイプ」で次のいずれかを選択します。
アプリケーション・ロゴにイメージを使用する場合は、「イメージ」を選択します。
アプリケーション・ロゴにテキストを使用する場合は、「テキスト」を選択します。
「ロゴ」で、次のように入力します。
イメージの場合、イメージの完全な名前(ファイル名拡張子を含む)を入力してください。次に例を示します。
/i/oracle.gif
テキストの場合、テキスト文字列全体を入力してください。次に例を示します。
Sample Application
「ロゴ属性」で、ロゴの適切な属性を入力するか、またはリストから選択します。
イメージの例:
width="100" height="20" alt="Company Logo"
テキストの例:
style="font-family:Arial; color:#000000; font-size:18; white-space:nowrap; font-weight:bold;"
既存のビルド・オプションを表示します。ほとんどのアプリケーションには、ビルド・オプション属性があります。ビルド・オプションは、INCLUDE
またはEXCLUDE
という2つの値をとることができます。属性を含めるように指定すると、Application Expressエンジンは、実行時にその属性を認識します。ただし、属性を除外するように指定すると、Application Expressエンジンは、その属性を存在しないものとして処理します。
オブジェクトを特定のインストールから除外する場合を除き、ビルド・オプションは指定しないでください。
アプリケーションに適用される現行のテーマを表示します。テーマは、アプリケーション全体のレイアウトおよびスタイルの定義に使用できるテンプレートのコレクションです。各テーマには多数のテンプレートが集められ、アプリケーションに必要となる可能性があるすべてのユーザー・インタフェース・パターンが収録されています。
このアプリケーションのデフォルトのテンプレートが表示されます。アプリケーション・レベルでデフォルト・テンプレートを指定するには、次のいずれかを実行します。
新しいテーマを選択します。「アクティブなテーマの切替え」を参照してください。
テーマの作成/編集ページで新しいデフォルトのページ・テンプレートを選択します。詳細は、「テーマのデフォルトのテンプレートの変更」を参照してください。
ページ属性ページの「ページ・テンプレート」リストから選択しても、このデフォルトを上書きできます。
表7-5に、カレント・アプリケーションのテンプレートのデフォルト属性を示します。
表7-5「アプリケーション定義」の「テンプレートのデフォルト」
属性 | 説明 |
---|---|
ページを表示するためのデフォルトのページ・テンプレートを指定します。ページ属性ページの「ページ・テンプレート」リストから選択すると、この値を上書きできます。 参照: 「ページ属性の変更」 |
|
Application Expressエンジンが印刷用モードの場合に使用するテンプレートを指定します。 ページのレンダリングのためにApplication Expressエンジンをコールする際、指定の出力モード・ページ・テンプレートを使用してページを表示するかどうかを指定するオプションがあります。 「はい」に指定すると、印刷用テンプレートを使用してページが表示されます。Application Expressエンジンは、HTMLフォーム・フィールド内のすべてのテキストをテキストとして表示します。印刷用テンプレートには、 参照: 「印刷用ページの最適化」 |
|
オプションです。インライン表示されるエラーではなく、個別のページに表示されるエラーに使用するページ・テンプレートを指定します。 |
ウィザードの実行時に使用するデフォルトのテンプレートを表示します。これらの設定は、各コントロールまたはコンポーネントの属性ページで上書きできます。表7-6に、カレント・アプリケーションのコンポーネントのデフォルトを示します。
表7-6 「アプリケーション定義」の「コンポーネントのデフォルト値」
属性 | 説明 |
---|---|
カレンダを作成する場合に使用するデフォルトのカレンダ・テンプレートです。 |
|
ページ・アイテムを作成する場合に使用するデフォルトのラベル・テンプレートです。 |
|
レポートを作成する場合に使用するデフォルトのレポート・テンプレートです。 |
|
リストを作成する場合に使用するデフォルトのテンプレートです。 |
|
ブレッドクラムを作成する場合に使用するデフォルトのテンプレートです。 |
|
テンプレートによって制御されるボタンを作成する場合に使用するデフォルトのテンプレートです。 |
|
リージョンを作成する場合に使用するデフォルトのテンプレートです。 |
|
チャートまたはマップを作成する場合に使用するデフォルトのリージョン・テンプレートです。 |
|
フォームを作成する場合に使用するデフォルトのリージョン・テンプレートです。 |
|
レポートを作成する場合に使用するデフォルトのリージョン・テンプレートです。 |
|
表形式フォームを作成する場合に使用するデフォルトのリージョン・テンプレートです。 |
|
ウィザード・コンポーネントを作成する場合に使用するデフォルトのリージョン・テンプレートです。 |
|
ブレッドクラムを作成する場合に使用するデフォルトのリージョン・テンプレートです。 |
|
リストを作成する場合に使用するデフォルトのリージョン・テンプレートです。 |
アプリケーションに対するセキュリティを提供するには、セキュリティ属性の編集ページで属性を編集します。選択したセキュリティ属性は、アプリケーション内のすべてのページに適用されます。
内容は次のとおりです。
セキュリティ属性の編集ページにアクセスするには、次のステップを実行します。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
「共有コンポーネント」をクリックします。
共有コンポーネント・ページが表示されます。
「セキュリティ」で、「セキュリティ属性」をクリックします。
セキュリティ属性の編集ページが表示されます。
セキュリティ属性の編集ページは、「認証」、「認可」、「データベース・スキーマ」、「セッション・ステート保護」、「ブラウザ・セキュリティ」および「データベース・セッション」の各セクションから構成されます。これらのセクションにはページをスクロール・ダウンするか、ページ上部のナビゲーション・ボタンをクリックすることでアクセスできます。
ページ上部のボタンを選択すると、選択されたセクションが表示され、その他のセクションはすべて一時的に非表示になります。ページのすべてのセクションを表示するには、「すべて表示」をクリックします。
次のセクションでは、セキュリティ属性の編集ページで使用可能な属性について説明します。
内容は次のとおりです。
認証は、ユーザーがアプリケーションにアクセスする前に、そのユーザーの本人確認を行うプロセスです。アプリケーションに対して複数の認証スキームを定義できますが、一度にカレントに設定できるスキームは1つだけです。表7-7に、「認証」で使用可能な属性を示します。
表7-7 「認証」属性
属性 | 説明 |
---|---|
URL、またはアプリケーションを実行するときに実行されるプロシージャを指定します。 たとえば、「ホーム・リンク」には、アプリケーションのホームページの位置を特定するために使用される相対URLを含めることができます。たとえば、 この属性を使用してプロシージャに名前を付けることもできます。たとえば、アプリケーション・ホームとして機能するHTMLページをレンダリングする 注意: 認証後に表示されるページを決定するために「ホーム・リンク」属性は使用しないでください。認証後に表示されるページは、アプリケーションの認証スキーム内の他のコンポーネントによって決定されます。 参照: 「HOME_LINK」 |
|
HTMLの 参照: 「LOGIN_URL」および「認証スキームの作成」 |
|
データベース・アクセス記述子を介したデータベースへの接続に使用するOracleスキーマを示します。デフォルト値は、データベース・サーバーのバージョンがOracle Database Express Editionの環境では ユーザーの本人確認が行われると、Application Expressエンジンが組込み置換文字列 注意: 以前のバージョンのOracle Application Expressでは、組込み置換文字列
カレント・アプリケーション・ユーザー( たとえば、ユーザーがパブリック・ユーザーの場合はログイン・ボタンを表示し、ユーザーがパブリック・ユーザーでない場合にはログアウト・リンクを表示するように設定できます。この値を参照するには、 |
|
認証スキームを定義するには、このリンクをクリックします。 参照: 「認証の仕組みの理解」および「認証スキームの作成」 |
認可は、ユーザー権限に基づいて、特定のコントロールまたはコンポーネントへのユーザーのアクセスを制御します。「認可スキーム」リストから選択して、アプリケーションの認可スキームを指定できます。アプリケーション全体に割り当てることができる認可スキームは1つのみです。ただし、認可スキームは、個々のページ、ページ・コントロール(リージョン、ボタン、アイテムなど)または共有コンポーネント(メニュー、リスト、タブなど)に割り当てることができます。
認可スキームを作成するには、「認可スキームの定義」をクリックします。
認可スキームはバイナリ操作で、結果は成功(true)または失敗(false)のいずれかになります。成功すると、コンポーネントまたはコントロールを表示できます。失敗するとコンポーネントやコントロールの表示または処理のいずれも行うことはできません。認可スキームをページに割り当てることに失敗すると、そのページではなくエラー・メッセージが表示されます。ただし、認可スキームをページ・コントロール(リージョン、ボタン、アイテムなど)に割り当てる場合は、失敗してもエラー・ページは表示されません。かわりに、コントロールが表示されないか、またはその処理や実行が行われません。
カレント・アプリケーションのデータベース・スキーマを指定するには、解析対象スキーマを使用します。定義後は、アプリケーションによって発行されるすべてのSQLおよびPL/SQLコマンドが、定義したデータベース・スキーマの権限で実行されます。
オープンWebブラウザで、取り消されたコンピュータにアプリケーションが公開される時間を短くするには、次の属性を使用します。
最大セッションの長さ: セッションが存在し、このアプリケーションにより使用される秒数を制御する正の整数を入力します。インスタンス・レベルの設定に値を戻すには、この値をNULLのままにします。セッションが無期限に存在するようにするには、0を入力します。セッション存続期間より、8時間ごとに実行され、12時間より前から存在するセッションを削除するジョブの操作が優先される場合があります。
セッション・タイムアウト時に、このURLにダイレクト: 最大セッション存続期間を超えた際にリダイレクトされるオプションのURLを入力します。このURLのターゲット・ページは、Application Expressで実装された場合、パブリック・ページである必要があります。このページの一般的な用途は、ユーザーにセッションの有効期間を知らせ、ログイン・リンクや他のオプションを表示することです。URLを指定しない場合、リダイレクト先はアプリケーションのホームページになります。
このURLでは次の3つの置換アイテムのみがサポートされます:
&APP_SESSION.
&SESSION.
&APP_ID.
このURLは特別な目的を持つため、リンクに&APP_SESSION.
および&SESSION.
のいずれも含める必要はありません。
最大セッション・アイドル時間: このアプリケーションが使用するセッションの停止時間またはアイドル時間を制御する正の整数を秒数で入力します。アイドル時間は、あるページ・リクエストと次のページ・リクエストとの間の時間です。インスタンス・レベルの設定に値を戻すには、この値をNULLのままにします。0に設定すると、セッションのアイドル時間のチェックは行われません。
セッション・アイドル時間のタイムアウト時に、このURLにダイレクト: 最大セッション・アイドル時間を超えた場合にリダイレクト先となるオプションのURLを入力します。このURLのターゲット・ページは、Application Expressで実装された場合、パブリック・ページである必要があります。このページの一般的な用途は、ユーザーにセッションのタイムアウトを知らせ、ログイン・リンクや他のオプションを表示することです。URLを指定しない場合、リダイレクト先はアプリケーションのホームページになります。
このURLでは次の3つの置換アイテムのみがサポートされます:
&APP_SESSION.
&SESSION.
&APP_ID.
このURLは特別な目的を持つため、リンクに&APP_SESSION.
および&SESSION.
のいずれも含める必要はありません。
セッション・ステート保護を有効にすると、ハッカーがアプリケーション内のURLを改ざんするのを防ぐことができます。URL改ざんにより、プログラム・ロジック、セッション・ステートの内容および情報プライバシが悪影響を受ける可能性があります。
アプリケーションのセッション・ステート保護を有効または無効にするには、「セッション・ステート保護」リストから選択します。セッション・ステート保護を有効に設定すると、ページおよびアイテム・レベルで定義されたセッション・ステート保護コントロールがオンになります。
ブックマーク済リンクにチェックサムが含まれ、セッション・ステート保護がアプリケーションに対して有効な場合、「この後に作成されるURLの許可」に、ブックマーク済リンクをこのアプリケーションのページへのアクセスに使用できるようになった日時がリストされます。
この日付および時間より前に作成されたブックマークは、ブックマーク済リンクにチェックサムが含まれ、セッション・ステート保護がアプリケーションに対して有効な場合、このアプリケーションへのアクセスに使用できません。チェックサムを含まないブックマークまたは不要なチェックサムを含むブックマークは、この属性による影響を受けません。これらの有用性は、他の基準を使用して決定されます。非表示のアプリケーション属性(チェックサム・ソルト)は、計算時と、ページのレンダリング時に生成されたf?p= URLに含まれるチェックサムのその後の検証時に使用されます。チェックサムは、「セッション・ステート保護」がアプリケーションに対して有効な場合に含まれます。このチェックサム・ソルト属性は、「ブックマークの無効化」ボタンをクリックすると、いつでもリセットできます。このボタンをクリックすると、以前に生成されたチェックサムを含むブックマーク済URLは、その後にアプリケーションへのアクセスに使用されるときに失敗します。
セッション・ステート保護を構成するには、「セッション・ステート保護の管理」をクリックします。
「キャッシュ」を使用して、アプリケーションのページ・コンテンツのブラウザによるキャッシュを有効化または無効化します。有効化すると、ブラウザでこのアプリケーションのページ・コンテンツを、メモリー内とディスク上の両方のキャッシュに保存できます。キャッシュが有効になっている場合に、ブラウザの「戻る」ボタンがクリックされると、通常、ページはサーバーからではなくキャッシュからロードされます。無効にすると、ブラウザはアプリケーションのページ・コンテンツを保存しないように指示され、URLが変更されるたびにサーバーから最新のページ・コンテンツをリクエストします。
機密データが保存されないようにするために、この属性を無効にすることをお薦めします。そうしない場合、ログアウト後にブラウザ履歴で前に戻り、以前のセッションのキャッシュされたコンテンツを表示できる可能性があります。ブラウザのキャッシュを無効にすると、部分ページ・リフレッシュを使用するページ(対話モード・レポートを含むページなど)での問題も回避できます。
「フレームへの埋込み」を使用して、ブラウザでアプリケーションのページをフレーム内に表示できるかどうかを制御します。使用可能なオプションは次のとおりです。
拒否: 実行するサイトに関係なく、ページをフレームに表示できません。
同じ起点から許可: ページ自体と同じ起点のフレームにのみ、ページを表示できます。
許可: ページを任意のフレームで表示できます。
フレーム内のページの表示は、クリックジャック攻撃で不正に使用される場合があります。クリックジャック攻撃では、攻撃者は複数のレイヤーを使用して、ユーザーがトップ・レベル・ページをクリックしようとしたときに、別のページ上のボタンやリンクをクリックさせます。したがって、意図したページに対するクリック(またはキーストローク)が攻撃者によりハイジャックされ、別のページに移動させられます。
ヒント: これらのいずれの機能にも、HTTPヘッダー・レスポンス変数x-frame-optionsをサポートする最新のブラウザが必要です。 |
「データベース・セッション」で使用できる属性には、次のものがあります。
初期化PL/SQLコード
この属性を使用して、現在の「ページの表示」または「ページの受入れ」リクエストに関連付けられたデータベース・セッションに対してコンテキストを設定するPL/SQLブロックを入力します。ここに入力したブロックは、ページ・リクエスト時の非常に早い段階(APP_USER
値が確立された直後)で実行されます。APP_USER
の値(:APP_USER
またはv
('APP_USER
')を使用)をブロック内で使用できます。セッション・ステート内の他のアイテムの値も参照できますが、これらのアイテムは現在のページ・リクエストが開始する前にセッション・ステートに確立されている必要があります。次に例を示します。
dbms_session.set_context('CTX_USER_QRY','USERPRIV',my_package.my_function(:APP_USER));
前の例では、CTX_USER_QRY
という名前のコンテキストでUSERPRIV
の値を、my_package
パッケージのmy_function
ファンクションによって戻された値に設定します。ファンクションには、入力引数としてAPP_USER
の現行の値が渡されます。指定したコンテキストがVPDポリシー(すでにアプリケーションの解析対象スキーマ内で作成されている)内で使用され、認証されたユーザーに適した条件の生成が行われます。
ファイングレイン・アクセス制御(FGAC)とも呼ばれる仮想プライベート・データベースは、開発者がセキュリティ・ポリシーをデータベースの表およびビューに割り当てることができるApplication Program Interface(API)を提供するOracle Databaseの機能です。開発者はPL/SQLを使用して、ストアド・プロシージャを含むセキュリティ・ポリシーを作成し、RDBMSパッケージをコールしてそのプロシージャを表またはビューにバインドできます。このようなポリシーは、データベース内に格納されているアプリケーション・データのコンテンツか、またはOracle Databaseが提供するコンテキスト変数に基づいています。これによって、VPDではアクセス・セキュリティ・メカニズムをアプリケーションから取り除き、特定のスキーマに近い状態にできます。
このセクションで入力するコードはVPD/FGACに関連付ける必要はありません。このコードはセキュリティにまったく関連していない場合があります。ページ・リクエストの最初の時点で実行する必要があるコードは、すべてここに指定できます。たとえば、各ページ・リクエストに対してデータベース・セッションのタイムゾーンを設定するには、次のように指定します。
BEGIN EXECUTE IMMEDIATE 'alter session set time_zone = ''Australia/Sydney'' '; END;
PL/SQLコードのクリーンアップ
この属性を使用して、ページ・プロセスの最後に実行するPL/SQLブロックを入力します。これは、VPDコンテキストまたはデータベース・リンクなど、使用されたリソースの解放またはクリーンアップに使用できます。
例1:
dbms_session.clear_context('CTX_USER_QRY');
このコールでは、データベース・セッションがセッション・プールに戻される前にCTX_USER_QRY
というアプリケーション・コンテキストが再設定され、データベース・セッションが再利用される際に情報が漏洩しないようにします。
例2:
dbms_session.close_database_link('SALES');
このコールでは、リンクを介してデータを問い合せることにより、「初期化PL/SQLコード」でまたは暗黙的に開かれているデータベース・リンクSALES
が閉じられます。この場合も同様に、リソースが解放され、データベース・セッションの再利用時のリソースの漏洩が防止されます。
アプリケーション・ビルダーでは、異なる言語で同時に実行可能なアプリケーションを開発できます。1つのアプリケーションを、異なる言語をサポートするよう変換できます。グローバリゼーション属性の編集ページの属性を使用して、プライマリ・アプリケーション言語などのグローバリゼーション・オプションを指定します。
内容は次のとおりです。
グローバリゼーション属性の編集ページにアクセスするには、次のステップを実行します。
「ワークスペース」ホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
アプリケーションを選択します。
アプリケーションのホームページが表示されます。
「共有コンポーネント」をクリックします。
共有コンポーネント・ページが表示されます。
「グローバリゼーション」で、「グローバリゼーション属性」をクリックします。
グローバリゼーション属性の編集ページが表示されます。
次のセクションでは、グローバリゼーション属性の編集ページで使用可能な属性について説明します。
アプリケーションを開発する言語を指定します。この言語が、すべての変換の元となるベース言語になります。たとえば、英語で作成されたアプリケーション100が、フランス語に変換され、アプリケーション101として公開されたとします。英語がアプリケーションのプライマリ言語になります。
アプリケーションに対するすべての変更は、ここで指定したプライマリ言語で行う必要があります。
アプリケーション・ビルダーでのアプリケーション言語の特定または導出の方法を決定します。
アプリケーションのプライマリ言語は静的にすることも、Webブラウザ言語から導出したり、ユーザー・プリファレンスやアイテムから特定することもできます。また、データベース言語設定により、日付の表示方法や特定の情報のソート方法を決定することもできます。
このオプションを使用すると、派生したブラウザ言語のサポートを無効にできます。アプリケーションのプリファレンスから派生したアプリケーション言語を指定するオプションも表示されます。詳細は、「フィールドレベル・ヘルプ」を参照してください。
アプリケーションで使用する日付書式を決定します。
この日付書式を使用して、NLS_DATE_FORMAT
データベース・セッションの設定が変更されてから、アプリケーション内のページが表示または送信されます。この値には、有効なOracle日付書式マスクを含むリテラル文字列、または置換構文を使用したアイテム参照を指定できます。値が指定されていない場合は、データベース・セッションからデフォルトの日付書式が実行時に取得されます。次に例を示します。
Month DD, YYYY &MY_DATE_FORMAT.
アプリケーションで使用する日時書式を指定します。
この日時書式は、置換参照&APP_DATE_TIME_FORMAT.
を使用するか、PL/SQLでv('APP_DATE_TIME_FORMAT')
ファンクションを使用して、アプリケーション内で参照できます。この属性によってNLS設定が変更されることはありません。この値には、有効なOracle日付書式マスクを含むリテラル文字列、または置換構文を使用したアイテム参照を指定できます。この属性値を指定しない場合、APP_DATE_TIME_FORMAT
への参照はNLSデータベース・セッションの日付書式とNLS時刻書式を返します。次に例を示します。
Month DD, RRRR HH24:MI &MY_DATE_TIME_FORMAT.
アプリケーションで使用するタイムスタンプ書式を決定します。LOVからタイムスタンプ書式を選択します。
このタイムスタンプ書式を使用して、NLS_TIMESTAMP_FORMAT
データベース・セッションの設定が変更されてから、アプリケーション内のページが表示または送信されます。この値には、有効なOracleタイムスタンプ書式マスクを含むリテラル文字列、または置換構文を使用したアイテム参照を指定できます。値が指定されていない場合は、データベース・セッションからデフォルトのタイムスタンプ書式が実行時に取得されます。次に例を示します。
DD-MON-RR HH.MI.SSXFF AM &MY_TIMESTAMP_FORMAT.
アプリケーションで使用するタイムゾーン付きのタイムスタンプ書式を決定します。
この日付書式を使用して、NLS_TIMESTAMP_TZ_FORMAT
データベース・セッションの設定が変更されてから、アプリケーション内のページが表示または送信されます。この値には、有効なOracleタイムスタンプ書式マスクを含むリテラル文字列、または置換構文を使用したアイテム参照を指定できます。値が指定されていない場合は、データベース・セッションからデフォルトのタイムゾーン付きのタイムスタンプ書式が実行時に取得されます。次に例を示します。
DD-MON-RR HH.MI.SSXFF AM TZR &MY_TIMESTAMP_TZ_FORMAT.
データベース・セッションのタイムゾーンの設定を制御します。「はい」に設定すると、クライアント・タイムゾーンがクライアントのWebブラウザから取得され、Application Expressセッションの継続時間用に設定されます。
その後のページ・ビューには、ページ・ビューごとに適切なデータベース・セッション・タイムゾーンが設定されます。設定後、この設定はAPEX_UTIL.SET_SESSION_TIME_ZONE
を使用して上書きしたり、APEX_UTIL.RESET_SESSION_TIME_ZONE
を使用して再設定することができます。
関連項目: 『Oracle Application Express APIリファレンス』 |
自動CSVエンコーディングは、アプリケーションのすべてのカンマ区切り(CSV)レポートの出力エンコーディングを制御します。自動CSVエンコーディングのデフォルト値は「いいえ」です。自動CSVエンコーディングを「はい」に設定した場合、CSVレポートの出力は、ローカライズされたデスクトップ・アプリケーションと互換性のあるキャラクタ・セットに変換されます。CSVエンコーディングのキャラクタ・セットは、「アプリケーション言語の派生元」の設定によって決まります。
アプリケーション・ビルダーのページのエンコーディングは、Oracle Application Expressへのアクセスに使用されるデータベース・アクセス記述子(DAD)のキャラクタ・セットによって決まります。たとえば、データベース・アクセス記述子のキャラクタ・セットがAL32UTF8である場合、Oracle Application Expressユーザー・インタフェースの全アプリケーションのすべてのページはUTF-8でエンコードされます。
デフォルトでは、レポート・リージョンからのCSV出力は、データベース・アクセス記述子と同じキャラクタ・セットでエンコードされます。ただし、一部のデスクトップ・スプレッドシート・アプリケーションでは、データがクライアント・デスクトップのオペレーティング・システムのキャラクタ・セットでエンコードされる必要があります。マルチバイト・データの場合、レポート・リージョンからのCSV出力をデスクトップのスプレッドシート・アプリケーションで開くと壊れて表示されることがよくあります。これは、CSV出力のエンコーディングが、デスクトップ・アプリケーションで必要とされるエンコーディングと異なるためです。自動CSVエンコーディングを有効にすると、この問題が解決します。
たとえば、アプリケーションに対するユーザーの言語プリファレンスがde
である場合、データベース・アクセス記述子のキャラクタ・セット設定にかかわらず、CSVデータは西ヨーロッパ語(Windows 1252)でエンコードされます。ユーザーの言語プリファレンスが
zh-cn
の場合、CSVデータは中国語(GBK)でエンコードされます。