(2019.4更新)ファイルアップロード時の拡張子制限の追加について
2019年3月に公開された ColdFusion 2018 Update 3、2016 Update 10、11 Update 18を適用すると、ファイルをアップロードする処理
において”新たに追加されたブラックリスト”に指定されている拡張子のアップロードを制限する機能が加わります。また、デフォルトで次に紹介する拡張子がブラックリストに掲載されます。
ブラックリストに掲載されている拡張子のファイルをアップロードする処理がある場合は、この制限によりエラーが発生する場合がありますので、設定を変更するか、あるいはアップロード処理のaccept属性やstrict属性などを変更下さい ⇒ <cffile>アップロード処理(英語)ページ
(※サーバーで実行可能な拡張子.cfm, .cfc, .php, .aspx ...etcを許可した場合、悪意のあるユーザーがそれら拡張子のファイルをアップロードして想定外のプログラムを実行されないよう、必要なセキュリティ対策(例えば、アップロードを許可するユーザーを限定したり、アップロード先をWebルート以外にしたり)を行って下さい)
(2020年7月補足)
このアップデート以降、拡張子の付いていないファイルのアップロードもブロックされるようになりました。現在のところ、そのブロックを除外する機能が実装されておらず、その事が不具合として登録されています。
<cffile>タグによるファイルのアップロード時のファイルチェックは、これまでアップロードするファイルの拡張子、またはMIMEタイプのチェックのみ可能でした。ColdFusion 10からはチェック機能が強化され、ファイルの先頭から数バイトを読み込んでMIMEタイプを判別することが可能です。
詳しくは、下記のオンラインマニュアルに掲載されています。ただ、こちらで確認した限りですが、マニュアルの内容と一部動作が異なるため、参考情報として、確認した内容をご紹介します。
該当記事
http://help.adobe.com/ja_JP/ColdFusion/10.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7fa1.html
ファイルチェック処理について
(ColdFusion 10)ファイルチェック処理のマニュアルの誤りについて
(2017.8.24補足)
ColdFusion11以降のマニュアルの説明で、誤りが修正され、デフォルト値が「true」として解説されています。
https://helpx.adobe.com/jp/coldfusion/cfml-reference/coldfusion-tags/tags-f/cffile-action-upload.html
ColdFusion 9以前との動作の違いについて
旧バージョンの動作は、strict="true"の場合に比べてセキュリティは低いため、プログラムによるファイルのチェック等、必要なセキュリティを維持する事をご検討下さい。
ColdFusion 10 のオンラインマニュアル(英語ページ)が更新され、<cffile>タグのファイルアップロード時の strict 属性のデフォルト値は true と紹介されました。(※日本語のオンラインマニュアルページは更新されていません)
https://learn.adobe.com/wiki/pages/viewpage.action?pageId=87505342
※記事のカテゴリを「ColdFusion 10情報」から「タグ・関数・構文など」に変更しました。
※タイトルを若干変更しました
記事公開日:2013年08月26日
最終更新日:2020年07月06日
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.