20.2.5 URL改ざんの防止

セッション・ステート保護は、ハッカーがアプリケーション内のURLを改ざんするのを防ぐための組込み機能です。URL改ざんにより、プログラム・ロジック、セッション・ステートの内容および情報プライバシが悪影響を受ける可能性があります。

20.2.5.1 セッション・ステート保護の仕組み

セッション・ステート保護は2ステップのプロセスで有効にします。最初に、「共有コンポーネント」の「セッション・ステート保護」機能を有効にします。次に、ページおよびアイテムのセキュリティ属性を設定します。これらのステップは、ウィザードを使用して実行するか、セッション・ステート保護ページでページおよびアイテムのセキュリティ属性を手動で設定して行います。

セッション・ステート保護を有効にすると、「ページ・アクセス保護」「セッション・ステート保護」項目属性が、f?p= URL内に配置されたチェックサムとともに使用され、URL改ざんと、セッション・ステートに対する権限のないアクセスおよび変更が防止されます。セッション・ステート保護を無効にすると、セッション・ステート保護に関連するページ属性および項目属性が無視され、生成されるf?p= URLにはチェックサムが含まれません。

20.2.5.2 セッション・ステート保護の有効化

セッション・ステート保護を有効にするには:

  1. 共有コンポーネント・ページにナビゲートします。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. 「共有コンポーネント」をクリックします。
    4. 「セキュリティ」で、「セッション・ステート保護」を選択します。
    セッション・ステート保護ページが表示されます。「セッション・ステート保護」の現行のステータス(有効または無効)がページ上部に表示されます。
  2. 「保護の設定」ボタンをクリックします。

    「セッション・ステート保護」ウィザードが表示されます。

  3. 「操作の選択」で、「有効化」を選択して、「次へ」をクリックします。

    次に、ページおよびアイテムのセキュリティ属性を設定するかどうか決定します。

  4. 「有効化」を選択して、「次へ」をクリックします。
  5. 「セッション・ステート保護の有効化」をクリックします。

ヒント:

セッション・ステート保護を無効にするには、同じステップを実行しますが、「有効化」のかわりに「無効化」を選択します。セッション・ステート保護を無効にしても、既存のセキュリティ属性の設定は変更されませんが、それらの属性は実行時に無視されます。

20.2.5.3 セッション・ステート保護の構成

ヒント:

セキュリティ属性を構成する前に、まずセッション・ステート保護を有効にする必要があります。セッション・ステート保護の有効化を参照してください。

20.2.5.3.1 セッション・ステート保護の構成について

セッション・ステート保護を有効にしたら、次のステップは、セキュリティ属性を構成します。セキュリティ属性は2つの方法で構成できます。

  • ウィザードを使用し、特定の属性カテゴリの値を選択する。この場合、選択内容がアプリケーション内のすべてのページおよびアイテムに適用されます。

  • 個々のページ、アイテムまたはアプリケーション・アイテムの値を構成する。

20.2.5.3.2 既存のセッション・ステート保護設定の確認

「セッション・ステート保護」ウィザードの最初のページでは、ページ、アイテムおよびアプリケーション・アイテムのセッション・ステート保護設定のサマリーを確認できます。

既存のセッション・ステート保護設定のサマリーを表示するには:

  1. 「セッション・ステート保護」ページにナビゲートします。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. 「共有コンポーネント」をクリックします。
    4. 「セキュリティ」で、「セッション・ステート保護」を選択します。

      セッション・ステート保護ページが表示されます。

  2. 「保護の設定」をクリックします。
  3. ページの下部にある次のリージョンを展開して確認します。
    • ページ・レベルのセッション・ステート保護サマリー
    • ページ・アイテムのセッション・ステート保護サマリー
    • アプリケーション・アイテムのセッション・ステート保護

20.2.5.3.3 ウィザードを使用したセッション・ステート保護の構成

ウィザードを使用してセッション・ステート保護を構成するときは、特定の属性カテゴリの値を設定します。この場合、選択内容がアプリケーション内のすべてのページおよびアイテムに適用されます。

ウィザードを使用してセッション・ステート保護を構成するには:

  1. 「セッション・ステート保護」ページにナビゲートします。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. 「共有コンポーネント」をクリックします。
    4. 「セキュリティ」で、「セッション・ステート保護」を選択します。

      セッション・ステート保護ページが表示されます。

  2. 「保護の設定」をクリックします。

    「セッション・ステート保護」ウィザードが表示されます。

  3. 「操作の選択」で、「構成」を選択して、「次へ」をクリックします。
  4. 「ページ・アクセス保護」を選択します。
    • 制限なし: セッション・ステート引数(Request、Clear Cache、Name/Values)の有無にかかわらず、URLを使用してページを要求できます。
    • 引数にチェックサムが必要: URLにRequest、Clear CacheまたはName/Value引数が表示されている場合は、チェックサムも提供する必要があります。チェックサム・タイプは、引数として渡されるすべてのアイテムの最も厳密なセッション・ステート保護属性と互換性がある必要があります。
    • 引数使用不可: URLを使用してページを要求できますが、Request、Clear CacheまたはName/Value引数は許可されません。
    • URLアクセスなし: URLを使用してページにアクセスできませんが、ページは、URLリダイレクトを行わない「ページにブランチ」ブランチ・タイプのターゲットにできます。
  5. 「アプリケーション・アイテム保護」を選択します。
    • 制限なし: URLまたはフォームでアイテム名/値を渡して、アイテムのセッション・ステートを設定できます。URLにチェックサムは必要ありません。

      ノート:

      Ajaxを使用してこのアイテムの値をセッション・ステートに設定する必要がある場合は、アイテムに対して「制限なし」保護レベルを使用する必要があります(たとえば「動的アクション」の場合は、「値の設定」、「送信するページ・アイテム」または「カスケードLOV」、「送信するページ・アイテム」)。
    • チェックサムが必要 - アプリケーション・レベル: スキーマ固有のチェックサムを入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。ユーザー・レベル・チェックサムまたはセッション・レベル・チェックサムも使用できます(次の項目を参照)。現行のワークスペースの別のセッションで同じアプリケーションを実行しているユーザーが生成したチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合に、このオプションを使用します。
    • チェックサムが必要: ユーザー・レベル: ワークスペース、アプリケーションおよびユーザー固有のチェックサムを入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。セッション・レベル・チェックサムも使用できます(次の項目を参照)。現行のワークスペースの別のセッションで同じアプリケーションを実行しているユーザーが生成したチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合に、このオプションを使用します。
    • チェックサムが必要: セッション・レベル: カレント・セッション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。カレント・セッションで生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合に、このオプションを使用します。
    • 制限付き - ブラウザから設定できない: URLまたはPOSTDATAを使用してアイテムを変更できません。アイテムの値を内部プロセス、計算などに設定できる方法を制限する場合は、このオプションを使用します。この属性は、データ・エントリ・アイテムとして使用できないアイテムのみに適用され、セッション・ステート保護が無効になっていても常に監視されます。

    次の「表示形式」タイプのアプリケーション・アイテムまたはページ・アイテムには、「制限付き - ブラウザから設定不可」属性を使用します。

    • テキストとして表示(特殊文字をエスケープし、状態は保存しない)

    • テキストとして表示(状態は保存しない)

    • テキストとして表示(LOVに基づき、状態は保存しない)

    • テキストとして表示(PL/SQLに基づき、状態は保存しない)

    • テキスト・フィールド(無効、状態を保存しない)

    • HTML表の停止および開始(ラベルのみ表示)

  6. 「ページのデータ・エントリ・アイテム保護」を選択します。
    • 制限なし: URLまたはフォームでアイテム名/値を渡して、アイテムのセッション・ステートを設定できます。URLにチェックサムは必要ありません。

      ノート: Ajaxを使用してこのアイテムの値をセッション・ステートに設定する必要がある場合は、アイテムに対して「制限なし」保護レベルを使用する必要があります(たとえば「動的アクション」の場合は、「値の設定」、「送信するページ・アイテム」または「カスケードLOV」、「送信するページ・アイテム」)。

    • チェックサムが必要 - アプリケーション・レベル: スキーマ固有のチェックサムを入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。ユーザー・レベル・チェックサムまたはセッション・レベル・チェックサムも使用できます(次の項目を参照)。現行のワークスペースの別のセッションで同じアプリケーションを実行しているユーザーが生成したチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合に、このオプションを使用します。

    • チェックサムが必要: ユーザー・レベル: ワークスペース、アプリケーションおよびユーザー固有のチェックサムを入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。セッション・レベル・チェックサムも使用できます(次の項目を参照)。現行のワークスペースの別のセッションで同じアプリケーションを実行しているユーザーが生成したチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合に、このオプションを使用します。

    • チェックサムが必要: セッション・レベル: カレント・セッション固有のチェックサムを入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。カレント・セッションで生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合に、このオプションを使用します。

  7. 「ページの表示専用アイテム保護」を選択します。
    • 制限なし: URLまたはフォームでアイテムの名前/値を渡して、アイテムを設定できます。URLにチェックサムは必要ありません。

      ノート: Ajaxを使用してこのアイテムの値をセッション・ステートに設定する必要がある場合は、アイテムに対して「制限なし」保護レベルを使用する必要があります(たとえば「動的アクション」の場合は、「値の設定」、「送信するページ・アイテム」または「カスケードLOV」、「送信するページ・アイテム」)。

    • チェックサムが必要 - アプリケーション・レベル: スキーマ固有のチェックサムを入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。ユーザー・レベル・チェックサムまたはセッション・レベル・チェックサムも使用できます(次の項目を参照)。現行のワークスペースの別のセッションで同じアプリケーションを実行しているユーザーが生成したチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合に、このオプションを使用します。

    • チェックサムが必要: セッション・レベル: カレント・セッション固有のチェックサムを入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。カレント・セッションで生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合に、このオプションを使用します。

    • チェックサムが必要: ユーザー・レベル: ワークスペース、アプリケーションおよびユーザー固有のチェックサムを入力する場合は、URLでアイテムの名前/値を渡して、アイテムのセッション・ステートを設定できます。セッション・レベル・チェックサムも使用できます。現行のワークスペースの別のセッションで同じアプリケーションを実行しているユーザーが生成したチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合に、このオプションを使用します。

    • 制限付き - ブラウザから設定できない: URLまたはPOSTDATAを使用してアイテムを変更できません。アイテムの値を内部プロセス、計算などに設定できる方法を制限する場合は、このオプションを使用します。この属性は、セッション・ステート保護が無効になっていても、常に監視されます。

      次の表示形式タイプについては、この属性を使用します。

      • テキストとして表示(特殊文字をエスケープし、状態は保存しない)

      • テキストとして表示(状態は保存しない)

      • テキストとして表示(LOVに基づき、状態は保存しない)

      • テキストとして表示(PL/SQLに基づき、状態は保存しない)

      • テキスト・フィールド(無効、状態を保存しない)

      • HTML表の停止および開始(ラベルのみ表示)

  8. 「次」をクリックします。
  9. 「終了」をクリックします。

20.2.5.3.4 ページのセッション・ステート保護の構成

ページのセッション・ステート保護を構成するには:

  1. ページ・デザイナでページを表示します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. ページを選択します。
    ページ・デザイナが表示されます。
  2. 「レンダリング」タブまたは「レイアウト」タブのいずれかで、ページ名を選択します。
    プロパティ・エディタの右ペインにページ属性が表示されます。属性は、グループに編成されます。
  3. 「セキュリティ」グループを見つけて、「ページ・アクセス保護」属性を編集します。オプションは次のとおりです。
    • 制限なし: セッション・ステート引数の有無にかかわらず、チェックサムなしで、URLを使用してページをリクエストできます。
    • 引数にチェックサムが必要: URLにRequest、Clear CacheまたはName/Value引数が表示されている場合は、チェックサムも提供する必要があります。チェックサム・タイプは、引数として渡されるすべてのアイテムの最も厳密な「セッション・ステート保護」属性と互換性がある必要があります。
    • 引数使用不可: URLを使用してページをリクエストできますが、URLにリクエスト、キャッシュのクリアまたは名前/値のペアの引数を含めることはできません。
    • URLアクセスなし: URLを使用してページにアクセスできません。ただし、URLリダイレクトは実行されないため、ページは「ページにブランチ」ブランチ・タイプのターゲットにできます。
  4. 変更内容を保存するには、保存をクリックします。

20.2.5.3.5 ページ・アイテムのセッション・ステート保護の構成

アイテムのセッション・ステート保護を構成するには:

  1. ページ・デザイナでページを表示します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. ページを選択します。
    ページ・デザイナが表示されます。
  2. 「レンダリング」タブまたは「レイアウト」タブのいずれかで、ページ・アイテムを選択します。
    プロパティ・エディタの右ペインにページ属性が表示されます。属性は、グループに編成されます。
  3. 「レンダリング」タブまたは「レイアウト」タブのいずれかで、ページ・アイテムを選択します。
  4. 「セキュリティ」グループを見つけます。
  5. 「セキュリティ」で、「セッション・ステート保護」属性を編集します。オプションは次のとおりです。
    • 制限なし - URLまたはフォームでアイテムを渡して、アイテムを設定できます。URLにチェックサムは必要ありません。

    • チェックサムが必要 - アプリケーション・レベル - ワークスペースおよびアプリケーション固有のチェックサムを含むURLでアイテムを渡して、アイテムを設定できます。

    • チェックサムが必要 - ユーザー・レベル - ワークスペース、アプリケーションおよびユーザー固有のチェックサムを含むURLでアイテムを渡して、アイテムを設定できます。

    • チェックサムが必要 - セッション・レベル - セッション固有のチェックサムを含むURLでアイテムを渡して、アイテムを設定できます。

    • 制限付き - ブラウザから設定できない - URLまたはPOSTDATAを使用してアイテムを変更できません。内部プロセス、計算などに設定できるアイテムの値を制限する場合は、このオプションを使用します。この属性は、データ・エントリ・アイテムとして使用されないアイテムのみに適用され、セッション・ステート保護が無効になっていても常に監視されます。この属性は、次の「表示形式」タイプのページまたはアプリケーション・アイテムに使用します。
      • 表示のみ(状態の保存=なし)
      • テキスト・フィールド(無効、状態を保存しない)
  6. 変更内容を保存するには、保存をクリックします。

20.2.5.3.6 アプリケーション・アイテムのセッション・ステート保護の構成

アプリケーション・アイテムのセッション・ステート保護を構成するには:

  1. 「セッション・ステート保護」ページにナビゲートします。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. 「共有コンポーネント」をクリックします。
    4. 「アプリケーション・ロジック」で、「アプリケーション・アイテム」を選択します。

      アプリケーション・アイテム・ページが表示されます。

  2. 「アプリケーション・アイテム」の名前をクリックします。
  3. アプリケーション・アイテムを選択します。
  4. 「セキュリティ」で、「セッション・ステート保護」を編集します。オプションは次のとおりです。
    • 制限なし: URLまたはフォームでアイテム名/値を渡して、アイテムのセッション・ステートを設定できます。URLにチェックサムは必要ありません。

    • 制限付き - ブラウザから設定できない: URLまたはPOSTDATAを使用してアイテムを変更できません。アイテムの値を内部プロセス、計算などに設定できる方法を制限する場合は、このオプションを使用します。この属性は、データ・エントリ・アイテムとして使用できないアイテムのみに適用され、セッション・ステート保護が無効になっていても常に監視されます。次の「表示形式」タイプのアプリケーション・アイテムまたはページ・アイテムについては、この属性を使用できます。

      • 表示のみ(状態の保存=なし)

      • テキスト・フィールド(無効、状態を保存しない)

      • グリッド・レイアウドの停止と開始(ラベルのみ表示)

    • チェックサムが必要: アプリケーション・レベル - ワークスペースおよびアプリケーション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムを設定できます。現行のワークスペースの別のセッションで同じアプリケーションを実行しているユーザーが生成したチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合に、このオプションを使用します。

    • チェックサムが必要: ユーザー・レベル - ワークスペース、アプリケーションおよびユーザー固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムを設定できます。現行のワークスペースの別のセッションで同じアプリケーションを実行しているユーザーが生成したチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合に、このオプションを使用します。

    • チェックサムが必要: セッション・レベル - カレント・セッション固有のチェックサムも入力する場合は、URLでアイテムの名前/値を渡して、アイテムを設定できます。カレント・セッションで生成されたチェックサムを含むURLによってのみ、このアイテムを設定できるようにする場合に、このオプションを使用します。

  5. 「変更の適用」をクリックします。