ファイル
ColdFusion(2018 リリース)アップデート 9
アップデート 8 を適用せずにアップデート 9 を適用する場合は、アップデート 8 のインストール後の手順に従ってください。アップデート 8 を利用している場合は、セキュリティ情報 APSB20-16 も参照してください。
注:アップデート 8 を既に使用している場合は、アップデート 9 をすぐにインストールできます。
ColdFusion Administrator でアップデートする場合:
証明書に署名を行うコードが最近変更されため、ColdFusion(2018 リリース)にアップデートできるバージョンはアップデート 4 以降になりました。
これは、アップデートの前提条件となります。
以下のアップデートは累積的なもので、以前のアップデートがすべて含まれています。以前のアップデートを行っていない場合、最新のアップデートを適用することで、以前のアップデートも適用されます。また、スキップしたアップデートでおこなわれた変更をメモしておいてください。
以前のアップデートをインストールするには、「ColdFusion(2018 リリース)のアップデート」を参照してください。
新機能および変更された機能
ColdFusion(2018 リリース)アップデート 9(リリース日:2020 年 4 月 14 日)は、セキュリティ情報 APSB20-18 に記載されている脆弱性に対処しています。
SameSite 属性
SameSite 属性を使用すると、Cookie をファーストパーティに制限する必要があるかどうかを宣言できます。
Google Chrome Update 80 では、Cookie に SameSite 属性が定義されていない場合、デフォルトですべての Cookie をファーストパーティに設定します。それ以前のバージョンでは、SameSite 属性が設定されていない場合、デフォルトで none に設定され、サードパーティによる共有が有効になります。
cfcookie タグには、SameSite という新しい属性があります。
SameSite 属性には次の値を設定できます。
- Strict
- Lax
- None
使用方法
1. CFCookie
<cfcookie name="name" value="value" sameSite="Strict | Lax | None">
2. Auth cookie / Session Cookie (CFID, CFTOKEN)
<cfset cookstruct = {samesite: "Lax"}
<cfapplication authCookie=cookStruct sessionCookie=cookstruct >
例 - cfapplication タグ
<cfset cookies = {httponly='true', timeout=createTimeSpan(1, 0, 0, 0), sameSite='Strict'}>
<cfset authcookies = {samesite='Lax'}>
<cfapplication name="MyApp" sessionmanagement="Yes" authCookie=authcookies sessioncookie=cookies>
例 - cfm
<cfcookie
name = "newCookieName"
value = "newCookieValue"
expires = "20"
samesite="Strict"
/>
使用方法 - Application.cfc
このアップデートでは、次のフラグが追加されました。
this.sessioncookie.samesite = "Strict | Lax | None"
this.authcookie.samesite= "Strict | Lax | None"
例
component {
this.name = "MyApp";
this.sessioncookie.samesite = "Strict";
this.authcookie.samesite = "Lax";
this.sessionmanagement = true;
}
例 — Test.cfm
<cflogin>
<cfloginuser name="john" password="pwd" roles="" />
</cflogin>
使用方法 - cfapplication タグ
<cfset cookiest = {httponly='true', timeout=createTimeSpan(1, 0, 0, 0), samesite='Strict | Lax | None'}>
<cfset authcookiest = {samesite='Strict | Lax | None'}>
<cfapplication name="newApp" sessionmanagement="Yes" authCookie=#authcookiest# sessioncookie=#cookiest# >
注:cfapplication タグまたは Application.cfc に SameSite 属性がない場合、それぞれの session/auth cookie はサーバーレベルの SameSite 属性を使用します。この属性は、ColdFusion の管理者が「メモリ変数」セクションで設定します。
ColdFusion 2018 年リリースのアップデート 9 を使用すると、アプリケーションサーバーによっては SameSite 属性がデフォルトの設定で予期したとおり動作しない場合があります。詳しくは、アプリケーションサーバーのマニュアルを参照してください。
回避策はありますが、アプリケーションサーバーの公式ドキュメントを参照してください。
JEE 設定の回避策
EAP/Wildfly
いくつかの回避策があります。
- Undertow でカスタムフィルタを作成します(EAP 7.2 以降の場合)。
- JBoss EAP に含まれる Apache HTTPD サーバーの mod_headers の Header ディレクティブで SameSite フラグを設定します。
詳しくは、「EAP 7 の JSESSIONID Cookie で SameSite フラグを設定する」を参照してください。
Tomcat
context.xml では、SameSite 属性を設定できます。
<コンテキスト>
<CookieProcessor sameSiteCookies="strict" />
</コンテキスト>
詳しくは、ドキュメントを参照してください。
WebSphere
WebSphere の場合は、Apache HTTP Server を使用して既存の Cookie を置き換えることをおすすめします。詳しくは、WebSphere のドキュメントを参照してください。
WebSphere では、この問題の修正が公開されています。お使いのバージョンの修正をダウンロードします。
前提条件
- 64 ビットコンピューターでは、64 ビット版 ColdFusion の 64 ビット JRE を使用します。
- ColdFusion サーバーがプロキシの背後にある場合は、サーバーが更新通知を受け取ってアップデートをダウンロードできるようにプロキシ設定を指定してください。スタンドアロンインストールの場合は jvm.config の下のシステムプロパティ、JEE インストールの場合は対応するスクリプトファイルを使用してプロキシ設定を指定します。
- http.proxyHost
- http.proxyPort
- http.proxyUser
- http.proxyPassword
- JEE アプリケーションサーバー上で実行している ColdFusion の場合、アップデートをインストールする前に、すべてのアプリケーションサーバーインスタンスを停止します。
インストール
このアップデートをインストールする方法については、「 サーバー 更新」セクションを参照してください。アップデートに関する質問については、この FAQ をご覧ください。
- アップデートはColdFusion インスタンスの Administrator か、コマンドラインオプションでインストールできます。
- Windows ユーザーは、「スタート/すべてのプログラム/Adobe/Coldfusion 2018/Administrator」を使用して ColdFusion Administrator を起動できます。
- Microsoft 8.1、Windows 、Windows 10、Windows Server R2 2012、および Windows Server 2016 のユーザーは、「管理者として実行」オプションを使用して wsconfig ツール({cf_install_home}/{instance_name}/runtime/bin にある)を起動する必要があります。
- 「ダウンロードおよびインストール」オプションを使用してアップデートをインストールするときに、次のエラーが表示された場合、フォルダー {cf_install_home}/{instance_name}/hf_updates に書き込み権限があることを確認します。「{cf_install_home}/{instance_name}/hf-updates/hotfix_009.properties のファイルで書き込みファイル操作を実行するときにエラーが発生しました。」
- コネクタ設定ファイルは、{cf_install_home}/config/ wsconfig /backup にバックアップされます。コネクタの再設定後、workers.properties ファイルにおこなわれたカスタム変更をすべて元に戻します。
アップデートの手動インストール
- このリンクをクリックして、アップデート JAR をダウンロードします。
- ダウンロードした JAR で、以下のコマンドを実行します。ColdFusion サービスを開始したり停止する特権と ColdFusion ルートディレクトリへのフルアクセスを持つ必要があります。
Windows:<cf_root>/jre/bin/java.exe -jar <jar-file-dir>/hotfix-009-318650.jar
Linux ベースのプラットフォーム:<cf_root>/jre/bin/java -jar <jar-file-dir>/hotfix-009-318650.jar
ダウンロードした JAR の実行には、ColdFusion にバンドルされている JRE を必ず使用してください。スタンドアローン ColdFusion の場合、これは <cf_root>/jre/bin にあります。
ColdFusion サービスおよび他の設定済み Web サーバーを再起動する権限を持つユーザーアカウントからアップデートをインストールします 。
アプリケーションを手動で更新する方法については、このヘルプ記事をご覧ください。
インストール後
このアップデートの適用後、ColdFusion のビルド番号は 2018,0,09,318650
になるはずです。
インストール後は、コネクタを再ビルドまたは再設定することをおすすめします。
注:これは、アップデート 8 を適用せずにアップデート 9 を適用した場合の説明です。
Web サイトを表示したときに Error 503 または Error 403 が発生した場合は、「トラブルシューティング手順」を参照してください。
サーバーの自動ロックダウンの適用
アップデート 9 をインストールした後(事前に設定されたコネクタを使用)、自動ロックダウンインストーラーでサーバーをロックダウンすると、Web ページにアクセスしたときに Error 403 forbidden が発生する場合があります。
問題を解決するには、以下の手順をおこなってください。
- workers.properties ファイルのシークレットが server.xml のシークレットに一致していることを確認します。
- シークレットが一致していない場合は、workers.properties ファイルのシークレットを server.xml ファイルにペーストします。
- ColdFusion Server を再起動して変更を有効にします。
ファイルの場所
|
場所 |
---|---|
server.xml |
{cf.instance.home}\runtime\conf |
server.xml の AJP コネクタ |
AJP コネクタのプロトコル属性は AJP/1.3 に設定されています。 次に例を示します。 <Connector port="8018" protocol="AJP/1.3" packetSize="65535" redirectPort="8451" tomcatAuthentication="false" maxThreads="500" connectionTimeout="60000" secret=”abcd” /> |
server.xml のシークレット |
server.xml のシークレット値は、属性名が secret のコネクタノードにあります。 次に例を示します。 <Connector port="8018" protocol="AJP/1.3" packetSize="65535" redirectPort="8451" tomcatAuthentication="false" maxThreads="500" connectionTimeout="60000" secret=”abcd” /> |
IIS の workers.properties |
{cf.home}/config/wsconfig/<magic_folder_number> |
Apache の workers.properties |
APACHE_HOME/conf/ |
workers.properties のシークレット |
worker.cfusion.secret=<secret> |
アンインストール
アップデートをアンインストールするには、以下のいずれかの操作を行います。
- ColdFusion Administrator で、「サーバーアップデート/アップデート/インストール済みアップデート」に移動して「アンインストール」をクリックします。
- コマンドプロンプトからアップデートのアンインストーラーを実行します。例:java -jar {cf_install_home}/{instance_home}/hf_updates/hf-2018-00009-318650/uninstall/uninstaller.jar
上記のアンインストールオプションを使用してもアップデートをアンインストールできない場合、アンインストーラーが破損している可能性があります。ただし、次の操作を実行すれば、手動でアップデートをアンインストールできます。
- {cf_install_home}/{instance_name}/lib/updates からアップデート jar を削除します。
- {cf_install_home}/{instance_name}/hf-updates/{hf-2018-00009-318650}/backup ディレクトリから {cf_install_home}/{instance_name}/ にすべてのフォルダーをコピーします。