1

PHP関数の違いを見るrenamemove_uploaded_file、いつも違いはmove_uploaded_fileいくつかのセキュリティ機能があるということです。

私の質問は次のとおりです。

  1. それらのセキュリティ機能は何ですか、それを使用しないとどうなりますか?
  2. 使用できない場合(アップロードは行ったがPOSTは行っていない)、rename機能を使用しなければならない場合、どのようなセキュリティ対策を講じる必要がありますか?

ありがとう。

編集
@Pekkaから、ファイルのアップロード方法について詳しく説明するように求められました。Ajaxを介してファイルをアップロードしますが、複数のファイルをアップロードするためのキュー機能があります。したがって、私はphp://inputストリームを使用しています。

Pekkaの回答を正しく理解していれば、ファイルをストリームとして取得していて、一時ファイルをコピーしていないので、心配する必要はありません。私が間違っている場合は訂正してください。

4

1 に答える 1

3

この背景には、実際のファイルをアップロードする代わりに、tmp_fileパスをローカル ファイル パスで上書きし、代わりにそのローカル ファイルがアップロードとして扱われる可能性がある、(2000 年代初頭に発生した) 古いかなり悪い脆弱性がありました。実際にアップロードされたファイルの。($_FILES当時は配列はありませんでした。)

たとえば、アバターをアップロードする場合、スクリプトはcopy()、指定したシステム ファイル (たとえば、構成ファイル../../super_secret/config.phpまたは) をパブリックの場所に置き、それをアバター イメージとしてタグ.htpasswdに表示しようとします。<img>

不思議なことに、この脆弱性に関する特定の情報を見つけることはできません (過去 2 年間ですでに何度も検索しました) が、自分でテストしたので、存在するという事実を知っています。リンクは大歓迎です。

コメントで述べたように、どのようなセキュリティ対策を講じるべきかについては、どのような種類の代替ファイル アップロードを使用する予定かをより詳細に説明する必要があると思います。

于 2012-08-12T16:29:13.467 に答える