1

私はこれの壁に頭をぶつけてきました。ユーザーがzipファイルをサーバーにFTPで転送できるシステムがあります。次に、管理者は、このファイルがどこにあるかをアプリケーションに通知できるため、ファイルに対して一連のアクションを実行できます。

  1. ファイルをWebルートから移動します
  2. ファイルを解凍します
  3. 内容を一覧表示し、データベースにデータを挿入します

問題は、アップロードされたファイルが常に適切な権限を持っているとは限らないことです。私はそれらを次のように変更しようとしました:

<cfscript>
    FileSetAccessMode(myFile, "777");
</cfscript>

<cffile action="rename" mode="777" source="#myFile#" destination="#myFile#">        

    <cffile action="move" mode="777" source="#myFile#" destination="#myFile#">      

ただし、このzipファイルのアクセス許可は変更されません。画像(.jpg)に対して上記のアクションのいずれかを実行すると、正常に機能することに注意してください。私は何かが足りないのですか?

4

2 に答える 2

4

FTPで実行されているファイルと同じクレデンシャルでFTPを使用しない限り、FTPされたファイルがWebサーバープロセスによって所有される可能性は低くなります。Webサーバーがファイルを所有していない限り、ファイルのアクセス許可を変更することはできません。

于 2011-03-01T19:45:45.627 に答える
1

Webサーバー/ColdFusionサーバーがファイルを読み取ることができる場合は、ファイルをステージング領域にコピーしてから、元のファイルを削除します。CFがFOLDERへの書き込み(および実行の可能性)権限を持っている場合、モード000(誰もアクセスできない)に設定されている場合でも、所有者に関係なく元のファイルを削除できるはずです。

アップロードをサンドボックスに配置してから、サーバーが期待する場所に移動することは、どのような場合でも優れたセキュリティプラクティスです。

于 2011-03-01T20:09:34.210 に答える