CFAPPLICATION | |||||
説明
ColdFusion アプリケーションのスコープを定義します。クライアント変数のストレージを有効または無効にし、クライアント変数のストレージメカニズムを指定します。また、セッション変数を有効にし、アプリケーション変数のタイムアウトを設定します。 |
|||||
カテゴリ
アプリケーションフレームワークタグ | |||||
シンタックス<cfapplication name = "application_name" loginStorage = "cookie"、"session" clientManagement = "yes"、"no" clientStorage = "datasource_name"、"Registry"、"Cookie" のいずれか setClientCookies = "yes"、"no" sessionManagement = "yes"、"no" sessionTimeout = #CreateTimeSpan(days, hours, minutes, seconds)# sessionTimeout = #CreateTimeSpan(days, hours, minutes, seconds)# setDomainCookies = "yes"、"no" scriptProtect = "none"、"all"、list> |
|||||
関連項目
cfassociate、cferror、cflock、cfmodule、1193ページ、第5章の「Application.cfc リファレンス」 、『ColdFusion MX 開発ガイド』の第13章の「ColdFusion アプリケーションの設計と最適化」 および第37章の「CFML アプリケーションへの J2EE および Java 要素の統合」 |
|||||
ヒストリ
ColdFusion MX 7: scriptProtect 属性が追加されました。 ColdFusion MX 6.1: loginStorage 属性が追加されました。 ColdFusion MX:
|
|||||
使用方法
cfapplication タグは、通常 "Application.cfm" ファイル内で、ColdFusion アプリケーションのデフォルト値を設定するために使用されます。
cfapplication タグが ColdFusion Administrator 内で無効になっていないかぎり、このタグを使用してアプリケーション変数を有効にすることができます。また、Administrator 設定は sessionManagement 属性よりも優先されます。詳細については、『ColdFusion MX の設定と管理』 を参照してください。 クラスタ上で ColdFusion を稼働している場合は、clientStorage = "cookie" またはデータソース名を指定する必要があります ("registry" は指定できません)。 アプリケーション名が 64 文字を超えるときは、エラーが生成されます。 CFTOKEN 変数の長さは 8 バイトで、範囲は 10000000 ~ 99999999 です。
|
|||||
クロスサイトスクリプティング攻撃からの変数の保護
ScriptProtect 属性を使用すると、1 つ以上の変数スコープをクロスサイトスクリプティング攻撃から保護できます。この攻撃では、クライアントがユーザーのアプリケーションを利用して悪意のあるコードをユーザーのブラウザに送信しようとします。この攻撃では、フォームフィールドや URL 変数のユーザー入力により、ユーザー出力用の CF 変数が設定されます。JavaScript、アプレット、オブジェクト参照などの悪意のあるコードを含むデータが送信され、ユーザーのシステム上で実行されます。
ColdFusion MX のクロスサイトスクリプティング保護処理は、ColdFusion MX がリクエストの最初にアプリケーション設定を処理するときに実行されます。したがって、ユーザーのリクエスト内の URL、Cookie、CGI、およびフォーム変数を処理することができます。デフォルトでは、object、embed、script、applet、および meta の各タグ名をテキスト InvalidTag に置き換えます。これらの名前をプレーンテキストで示すことが可能になり、タグ名として使われた場合はその名前を置換します。 ColdFusion のスコープの一部または全部を保護対象に指定することができます。ただし、未知のソースからの変数を持つことがあるのはフォーム、URL、CGI、および Cookie のスコープだけです。スコープを保護するには、追加の処理も必要になります。このため、all 属性の値はこれら 4 つのスコープだけに保護を適用します。 スクリプト保護のメカニズムは、サーバー設定の cf_root/lib/neo-security.xml ファイル、または変数値に対する J2EE 設定の cf_root/WEB-INF/cfusion/lib/neo-security.xml ファイルで定義される正規表現に適用されます。CrossSiteScriptPatterns 変数の正規表現を修正することにより、ColdFusion の置換パターンをカスタマイズすることができます。 |
|||||
サーバー変数、アプリケーション変数、およびセッション変数のロック
Server、Application、および Session スコープの変数を設定または更新する場合は、scope 属性を次の値に設定した状態で cflock タグを使用します。
これらのスコープの変数を読み取るコードをロックする必要がある場合もあります。スコープのロック方法については、267ページのcflockを参照してください。 |
|||||
例<!--- この例は、cflock を使用して Application、Server、および Session スコープ内の変数に対するデー タ更新の際に競合状態を回避する方法を示しています。 ---> <h3>cfapplication の例</h3> <p>cfapplication は ColdFusion アプリケーションのスコープを定義し、アプリケーションやセッション変数の 保管を有効または無効にします。このタグは、"Application.cfm" という特殊なファイル内に挿入されます。 "Application.cfm" ファイルは、同じディレクトリ内またはサブディレクトリ内の他のどの CF ページよりも 先に自動的に実行されます。</p> <cfapplication name = "ETurtle" sessionTimeout = #CreateTimeSpan(0, 0, 0, 60)# sessionManagement = "Yes"> <!--- E-Turtleneck で使用されるセッション変数とアプリケーション変数を初期化。 ---> <cfparam name="application.number" default="1"> <cfparam name="session.color" default= ""> <cfparam name="session.size" default=""> <cfif IsDefined("session.numPurchased") AND IsNumeric(trim(session.cartTotal))> <!--- アプリケーション変数に対して Application スコープを使用して、競合状態を回避。これは、タートルネッ クの販売総数を記録する変数です。 ---> <cflock scope = "Application" timeout = "30" type = "Exclusive"> <cfset application.number = application.number + session.numPurchased> </cflock> </cfif> <cfoutput> E-Turtleneck は、これまでに #application.number# 枚のタートルネックを販売しました。 </cfoutput> <!--- Application.cfm の終了 ---> |
NAME | |
「説明」を参照 | |
アプリケーション名です。長さは 64 文字までです。 アプリケーション変数およびセッション変数 : 必須 クライアント変数 : オプション |
LOGINSTORAGE | |
オプション | |
Default value: "cookie"
|
CLIENTMANAGEMENT | |
オプション | |
Default value: "no"
|
CLIENTSTORAGE | |
オプション | |
Default value: "registry"
クライアント変数の保管方法を示します。
|
SETCLIENTCOOKIES | |
オプション | |
Default value: "yes"
|
SESSIONMANAGEMENT | |
オプション | |
Default value: "no"
|
SESSIONTIMEOUT | |
オプション | |
Default value: "ColdFusion Administrator の [変数] ページ内に指定された値"
セッション変数の有効期限です。CreateTimeSpan 関数と日付、時刻、分、および秒の値をカンマで区切って指定します。 |
APPLICATIONTIMEOUT | |
オプション | |
Default value: "ColdFusion Administrator の [変数] ページ内に指定された値"
アプリケーション変数の有効期限です。CreateTimeSpan 関数と日付、時刻、分、および秒の値をカンマで区切って指定します。 |
SETDOMAINCOOKIES | |
オプション | |
Default value: "no"
|
SCRIPTPROTECT | |
オプション | |
Default value: "ColdFusion MX Administrator の [Enable Global Script Protection] ページに指定された値"
変数をクロスサイトスクリプティング攻撃から保護するかどうかを指定します。
詳細については、「使用方法」を参照してください。 |