2009-05-06 4 views
15

Webアプリケーションの場合、人々はWebフォームからWebサーバーに画像をアップロードできます。Webサーバーのイメージアップロードディレクトリを保護するにはどうすればよいですか?

イメージアップロードディレクトリのCHMOD設定を、ユーザーがそのディレクトリに(Webサーバーから)アップロードできますが、セキュリティ上の理由からアップロードするファイルは実行できないように設定する必要があります。

chmodの設定はどうですか? :

chmod 744 directory/ 

答えて

0

ディレクトリのChmodでこれを行うことはできません。さらに、Webサーバーは、モードが何であっても.phpを実行可能ファイルとして解釈することがあります。使用しているサーバーを指定したい場合は、おそらく.htaccessやそれに類するものがあります。

なお、あなたのWebサーバが内部のファイルへのアクセス権を持っているしたい場合には、設定する必要がありますように、2つの可能性があります

22

...、ディレクトリには、「ディレクトリ内のファイルにアクセスすることができます」という意味「を実行」この文脈では "実行可能"の意味であり、どちらもあなたが設定する必要があります。

  1. シェルにファイル名を入力して、コマンドラインからを読んで、Webサーバでスクリプトとして処理することができるファイルを実行することができる実行可能なバイナリファイル。

は、バイナリ実行可能

UN * Xのシステム上ケース1に対して設定するには、あなたがアップロードディレクトリことを確認する必要があり、取り扱い、およびファイルは、その中に、ウェブサーバのユーザによって所有され、そのユーザーだけが読むことができます。ディレクトリは実行可能でなければなりません。これは、そのディレクトリ内のファイルにアクセスできることを意味します)。 Webユーザーがディレクトリ内のファイルを一覧表示する必要がある場合は、そのファイルも読み取り可能でなければなりません。もちろん、新しいファイルを作成できるように書き込み可能でなければなりません。

このようにしたい進セットが

chown <web-server-user> <upload-dir> 
chmod 0700 <upload-dir> 

ファイルが実行可能であってはならないことになると、Webサーバだけで読み書き可能でなければならないので、これらは

chmod 0600 <uploaded-file> 

する必要がありますのでご注意くださいこれは、というWebサーバーユーザーのみがこれらのファイルを参照できることを意味します。これはセキュリティのための最良の状況です。あなたが本当にこれらのファイルを見ることができるようにするために、他のローカルユーザを必要があります場合は、その後、ケース2に対してコーディング

excutableウェブサーバーの取り扱い

chmod 0755 <upload-dir> 
chmod 0644 <uploaded-file> 

を使用すると、特定のWebサーバです。

1つの方法は、Webrootの外部にアップロードディレクトリを置いて、アップロードされたファイルへの直接URLアクセスを完全に排除し、サーバー側のコードで配信することです。あなたのコードはファイルの内容を読み込んでエコーします。したがって、Webサーバーによってスクリプトとして処理されることはありません。

もう一つのオプションは、アップロードディレクトリ内のファイルのスクリプト処理を許可しないようにWebサーバーを設定することです。この設定はWebサーバー固有の設定です。しかし、例えば、Apacheの中で、あなたのサーバ設定に入力して、この本を達成することができます:それはあなたのアップロードディレクトリと再設定ウェブに.htaccessファイルをアップロードし、誰を停止するよう

<Directory "path-to-upload-dir"> 
    AllowOverride None 
    Options -ExecCGI 
</Directory> 

AllowOverrideのなしは、重要ではありませんそのディレクトリのサーバ権限。

+0

私の専門分野ではありませんが、私はphp_admin_flagをこれに追加する何かとして強調表示しました。 Options行の下に "php_admin_flag engine off"を追加してください。 オフ<ディレクトリ "へのパスのアップロード-DIR"> \tのAllowOverrideなし \tオプション-ExecCGI \t php_admin_flagエンジン – Jake

関連する問題