ColdFusionには、スコープやタグ、関数、内部処理用に特定の単語と変数名が予約されています。予約語を変数名に使用したり、関数名やCFCメソッド、引数名などに使用すると、エラーが発生したり、想定外の動作(例えば引数を呼び出しているつもりが予約語を呼び出す)となる場合があります。
また、ColdFusionのセキュリティの強化によって、バージョンアップやUpdateを適用した後にそれまでの動作と異なる動きとなる場合があります。プログラム中に予約語を使用している場合は、予約語に対して適切なスコープを指定するなどの対策が必要となります。
2025年12月にリリースされたUpdateでは、スコープインジェクションに対する修正が行われました。この修正によって、CFCやUDFの引数(argument)やローカル変数の名前にserver、file、error、pdfなどの予約語を使用していると、今までと動作が異なる場合があります。
例えば、以下のような処理は len( file )の箇所でエラーが発生するようになりました。
function foo( file ) {
return len( file );
}
writeOutPut(foo( "Hello" ));
これは、スコープインジェクションに対する修正となりますので、元の動作に戻す方法は提供されていません。Updateを適用後にエラーが発生した場合は、プログラムの修正を行ってください。予約語を使用していた変数名を別の変数名に変更するか、変数に適切なスコープを付ける(上記の場合は len( Arguments.file ) )ことで、スコープ内の変数を呼び出すようになります。
(参考) Reserved words in ColdFusion
ColdFusionのCFFORM機能(CFFORM,CFINPUT,CFSELECT,CFTEXTAREAタグ)は、HTMLのフォーム機能を拡張し、JavaScriptやColdFusionサーバー側で入力必須や値の検証の機能を利用することができますが、サーバー側での検証機能は、フォームの項目名(入力欄などのフォーム項目に付ける名前)で定められています。そのため、ColdFusionによって予約されている名前を含んでしまうと、サーバーサイドの検証機能が動いてしまう場合があります。例えば、フォームの項目名に、以下が含まれていると、Submit先で検証機能として動作してしまいます。
以下で終わる項目名(例:input_date)
_integer, _float, _range, _date, _time, _eurodate
(参考)フォームの項目名に_dateや_timeで終わるものがあるとSUBMIT時にエラーが発生する場合がある
ColdFusionで、クエリを動的に構築していくことがあると思います。動的な処理を行う際に変数名などに予約語が含まれているとエラーなどの原因となりますので、クエリで使用する変数(クエリの変数名)には、予約語を使用しないでください。また、クエリオブクエリで予約語を使用する場合は、カッコ([])で予約語を囲むなどの処理が必要となります。
(参考)
クエリの予約語
クエリオブクエリのユーザーガイド
記事公開日:2013年06月12日
最終更新日:2026年06月18日
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.
Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.