mursのColdFusionメモ

頭の中から抜け落ちていく情報をメモがわりに書き溜めていくブログです。

ColdFusion 2021 Update 6 と 2018 Update 16リリース

2022年3月14日(日本時間3月15日未明)に、ColdFusion 2021と 2018に向けた新しいUpdateがリリースされました。*1

community.adobe.com

今回のUpdateについて

機能修正などは行われず、CF2021 Update 5→6 または CF2018 Update 15→16 から脆弱性の修正のみが追加されています。

日本語の情報はこちらを見てください

その他

今回セキュリティの優先度が最も高いです。これは、修正された脆弱性のうちの1つが非常に限定的な攻撃で悪用されていることを認識したためでそうです。また、こういう(↓のリンク先)情報も出ています。この情報から攻撃方法を辿られる可能性も無いとは言い切れないので、外部からのリクエストを受け付けているサイトは、急ぎUpdateの適用をすることと、Updateの適用前でも下記のリンク先のページを見てIISApacheで特定のクエリ文字列が含まれるリクエストをブロックする方が良いでしょう。 https://www.carehart.org/blog/2023/3/17/coldfusion_march_2023_emergency_update/

*1:ColdFusion 2016以前のバージョンは既にメーカーサポートが終了しており、それらバージョンのUpdateはリリースされません。セキュリティ等への備えが必要なサイトを運営されている場合は、メーカーサポートが提供されているColdFusion 2021や2018へのバージョンアップが推奨されます。

ColdFusion 2023(コードネームFortuna)オープンベータ版 公開

開発元のアドビフォーラムに次期ColdFusion 2023(Fortuna)のオープンベータ版が公開されたという投稿がありました。

community.adobe.com

上記の投稿内のリンク先から、オープンベータ版に参加することができるリンクがあります。そこからオープンベータに参加することができます。

英語ですが、ドキュメント類もPDFで公開されていますので、まずは参加するだけ参加してみると良いと思います。 また、既知の不具合の修正が気になる(修正して欲しいなどの要望)や機能のエンハンスなどをリクエストする絶好の機会ですので、活用してください。

【随時更新】開発元ナレッジベース記事一覧

ここにメモに残したい情報の一つに、開発元が不定期に公開しているナレッジベース記事がある。残念なことに、今ではナレッジベースの一覧などを調べる方法は無く、たまにColdFusionのトラブル等を検索している時に出てくる場合がある。この投稿では、たまたま発見したナレッジベース記事をメモで残しておく(随時更新)。

記事はすべて英語なので、詳細はブラウザの翻訳機能(本当にありがたい機能)を使って見て欲しい。

cfif で文字列を比較する時の注意

ColdFusionで文字列による値での条件分岐をする際にたびたび引っかかる問題としては、文字列として比較したつもりで決定演算子(ISとかEQ)を使っているので値として処理される点だ。

以下の条件文は、どちらも結果は「同じ」になる。

<cfset a=1>
<cfif a is "1.000">同じ<cfelse>違う</cfif>

<cfset a=0>
<cfif a is "0e1">同じ<cfelse>違う</cfif>

比較する際の値に”引用符”を付けたから文字列になるはずと思いがちだが、決定演算子や比較演算子を使った条件処理は、比較の対象となる左辺・右辺のデータを数値や日付時刻オブジェクトへの変換を試みる。これによって、上記のように一見すると違う値に見えるものでも内部では同じ数値となるため、条件は同じになる。

数値に変換された場合なら比較的発見も早いが、日付時刻オブジェクトに変換された場合は、時が経ってから(例えば、年をまたいだ後)に条件が一致⇒不一致になってしまう場合などもあり、それまで通っていた条件文が年が変わると通らなくなってしまい、混乱させる原因にもなってしまう。 (ColdFusion Administratorで「テンプレートキャッシュをクリア」するか、ページを変更するなどして再度コンパイルさせると、日付時刻オブジェクトの値も更新されて、またしばらくの間は平常に動くけど後日また動かなくなるの繰り返し)

文字列として比較する際は、compare関数を使うのが良い。 cfassociates.samuraiz.co.jp

ここまでは前置きで、最近になって、ColdFusion 2021でcfifの条件結果が違うという質問を見るようになってきた。 community.adobe.com

tracker.adobe.com

これは、比較する値がドットで終わる時に発生している(「1.」とか「2.」)。 もともとのColdFusionは、比較演算子を使用すると数値に変更するため、1.は1に変更してきた。だけども、以下のように不具合登録され、さらにColdFusion 2021では===などの演算子も追加されたことによって、ColdFusion 2021のデフォルトの動作では、1.を1に変換しなくなっている。 tracker.adobe.com

もし、以前のバージョンと同じ動きに戻したい場合は、ColdFusion 2021のjvm.configに(または AdministratorのJavaJVMJVM引数に)-Dcoldfusion.number.allowdotsuffix=true を付けることで、元のバージョンの動作に戻すことができる。

YouTubeのadobe ColdFusionチャンネル

YouTubeでアドビ公式のColdFusionチャンネルがありますが、ここでは海外で行われたWebセミナーの録画が公開されています。YouTubeの動画は自動翻訳字幕を表示できるので、英語がダメダメな自分でも翻訳された字幕で分かった(気が)します。

www.youtube.com

普段の自分の業務よりもはるかに高度なことをされているので、ついていけない動画も多いですが、自分のスキルの向上を目指したお勉強としてみていきたいと思います。

cfpop, cfimap, cfmail + oAuth対応パッチ

cfpop, cfimap, cfmail で oAuthの認証に対応するパッチが公開されました。対象は cf2021/cf2018。 ダウンロードしたパッチファイルの配置、または、既存ファイルとの差し替え(キャッシュの再読み込み)と、JVM引数の追加が必要です。

helpx.adobe.com

パッチを適用した後は、cfoauthやcfhttpタグを使ってアクセストークンを取得して、取得したトークンをcfmailやcfpop, cfimapのパスワードに指定します。 アクセストークンを取得するには、oAuthを使った接続先の設定に依存するのでそこは注意が必要ですね。自分のテスト環境では、メールを送信するユーザーに対して[認証済み SMTP] の有効化が必要でした。

ColdFusion 2023(コードネームFortuna)アルファ―版 公開

開発元のアドビのフォーラムに次期ColdFusion 2023(Fortuna)のアルファ版が公開された投稿がありました。 投稿内のリンク先から、アルファ―版が公開されているPrereleaseサイトへのアクセスが申請できます。 (Adobe IDが必要です)

community.adobe.com

次期ColdFusion 2023を早い段階から試すことが可能です。既知の不具合の修正が気になる(修正して欲しいなどの要望)や機能のエンハンスなどをリクエストする機会ですので、活用してください。