2017-09-29 6 views
1

ColdFusion 9からColdFusion 2016にアップグレードする際に、.batファイル、.certファイルなどをブロックするために使用するファイルをアップロードできます。 ColdFusion 2016では、同じコードでこれらのファイルをアップロードできます。CFFILE action = "upload"はaccept = "text/plain"のときにバッチファイルを許可します

=それは、ファイルの種類が許可されているものをどのように扱うかにColdFusion 10 で「アップロード」アクションをCFFILEするには、いくつかの変更がありました。

また、ColdFusion 10で新しく追加されたstrict属性のデフォルト値は です。

厳密にtrueに設定すると、 ファイルがアップロードされたときにファイルのMIMEタイプがチェックされます。ただし、これはACCEPTがファイル拡張子ではなく のMIMEタイプのリストでなければならないことを意味します。私は明示的にtrueに厳密に設定するかどうかは、

Source

<cffile action="UPLOAD" filefield="form.filename" 
    destination="#change_path#" accept="text/plain" strict="true"> 

.batファイルがまだColdFusionでアップロードされた2016

は変更されているColdFusion Administratorの具体的な設定はありますか、そのこれらの不要なファイルタイプを許可しないように変更できますか?

+0

AFAIK '.bat'は' text/plain'ファイルです。 – Jules

答えて

0

"strict"を使用すると、ファイル拡張子はチェックされません。アップロードが成功した後にファイル拡張子に基づいてブロックするには、別のルーチンを追加する必要があります。以前は、さまざまな/間違ったMIMEタイプの問題で、有効なコンテンツのアップロードを妨げていました。 (時にはマック/ Safariユーザーが設定されていたものよりも、正しい、まだ別の、MIMEタイプを使用してファイルをアップロードします。)

<CFIF ListFindNoCase("bat", CFFile.serverFileExt)> 
    <!--- delete file, throw error, display message, etc ---> 
<CFELSEIF CFFile.serverFileExt IS "JPEG"> 
    <!--- rename file to JPG ---> 
</CFIF> 

を我々はまた、ファイルからの不正または非標準の文字を削除してアップロードを提出するルーチンを追加しましたMacユーザーが追加できる名前。

画像に関しては、JPEGファイルの名前をJPGに変更します。また、JPG色空間をRGBにリセットするために、GraphicsMagick(コマンドライン、CFImageと広範囲の画像互換より高速)も使用しています。 (ColdFusionイメージ& PDF生成機能はこのタイプのイメージで最もよく機能し、イメージの読み込み中にエラーをスローしません)

+0

別のルーチンを追加する以外の方法はありませんか?この質問にはいくつかの支援があります。https://stackoverflow.com/questions/46436669/coldfusion-server-file-with-apostrophe-character –

+0

ColdFusion 9のレガシーコードは機能しましたが、ColdFusion 2016の同じコードでは、バッチファイルを 'plain/text'として渡すことができます。そのため、これを処理したColdFusion Administrationの設定があると仮定したのです。 – MPaul

+0

JRunとCF10/11/2016で使用されるCF9はTomCatを使用します。行動には文書化されていない変更がたくさんありました。いくつかはバグ修正であり、いくつかは "修正が必要なバグ"です。 BATファイルはまだ "text/plain" mimetypeの正当なファイルです。ここに、Peter Freitagからのいくつかの良いアップロードのヒントがあります:http://www.petefreitag.com/item/701.cfm –

関連する問題