挿入する属性値をエンコードするかどうかの指定

属性値をURLパラメータとして挿入する際に、Studioがその値をURLに挿入する前にエンコードするかどうかを指定できます。

URLにはASCII文字を使用し、URL構文の一部として使用される特定の予約文字を使用しないようにする必要があります。URLをエンコードすると、適合しない文字は、パーセント記号にその文字の16進数表記が続く文字列に置き換えられます。

たとえば、スラッシュ(/)は予約文字です。URLに「CD/DVD」という語句が含まれる場合、そのURLをエンコードすると「CD%2FDVD」に変更されます。

URLにパラメータを挿入するには、最初に属性のリストを選択します。各属性には番号が割り当てられています。その番号を使用してパラメータを挿入します。


パラメータ・リストを含むハイパーリンクURLフィールド

この形式では一重および二重の中カッコを使用してエンコードするかしないかを示します。デフォルトでは、値はエンコードされ、パラメータは次のように一重の中カッコで囲まれています。

{parameterNumber}

次に例を示します。

http://www.acme.com/index.htm?p1={0}&p2={1}

Studioによってハイパーリンク・パラメータがエンコードされないようにするには、次のように二重の中カッコを使用します。

{{parameterNumber}}

次に例を示します。

http://www.acme.com/index.htm?p1={{0}}&p2={{1}}

値をエンコードしなかった場合、セキュリティ・リスクが生じる可能性があります。基礎となるEndeca Serverから取得されたデータは、調整なしでユーザーのブラウザにレンダリングされるため、スクリプトやHTMLが直接ユーザーのブラウザに挿入される場合があります。

同様に、URLに使用できない予約文字が属性に含まれる場合、最終的なハイパーリンクは正しくないか無効になり、エンド・ユーザーに対して機能しない可能性があります。

このため、値をエンコードしない構文を使用することはお薦めしません。基礎となるデータがすでにエンコードされていることがわかっている場合を除いて、常に値をエンコードする構文を使用する必要があります。