3.10.2 置換文字列での出力のエスケープの制御
置換文字列での出力のエスケープの制御について学習します。
ページ名、アプリケーション・アイテム名、レポート列、またはその他の置換文字列に、感嘆符(!
)を前に付けた事前定義済フィルタ名を追加することによって、置換値の特殊文字をエスケープできます。出力のエスケープは、ブラウザでクロス・サイト・スクリプティング(XSS)攻撃を回避するための重要なセキュリティ手法です。Oracle APEXでは、HTMLまたはJavaScriptコンテキスト内の文字を自動的にエスケープするためにすでに最善を尽くしています。この拡張構文を使用して、開発者は出力を詳細に制御できます。
使用できるエスケープ・フィルタ
使用できるエスケープ・フィルタは次のとおりです。
HTML
は、次に示すように、予約されているHTML文字をエスケープします。-
アイテム:
&P1_DEPTNO!HTML.
-
対話グリッド列:
&ENAME!HTML.
-
他のレポートの列:
#ENAME!HTML#
-
ATTR
は、次に示すように、HTML属性コンテキスト内の予約文字をエスケープします。-
対話グリッド列:
&ENAME!ATTR.
-
他のレポートの列:
#ENAME!ATTR#
-
JS
は、次に示すように、JavaScriptコンテキスト内の予約文字をエスケープします。-
アイテム:
&P1_DEPTNO!JS.
-
対話グリッド列:
&ENAME!JS.
-
他のレポートの列:
#ENAME!JS#
ノート:
JSエスケープ・フィルタは、クライアントで実行される置換ではサポートされていません。
-
RAW
は、次に示すように、元のアイテム値を保持し、文字をエスケープしません。-
アイテム:
&P1_DEPTNO!RAW.
-
対話グリッド列:
&ENAME!RAW.
-
他のレポートの列:
#ENAME!RAW#
-
-
STRIPHTML
は、次に示すように、HTMLタグを出力から削除し、予約されているHTML文字をエスケープします。-
アイテム:
&P1_DEPTNO!STRIPHTML.
-
対話グリッド列:
&ENAME!STRIPHTML.
-
他のレポートの列:
#ENAME!STRIPHTML#
-
親トピック: 置換文字列の使用