0

私はスレッドで見ます: PHPでアップロードされたファイルのファイルタイプをチェックする方法は? davrは、次の使用を提案しています。

system("file -bi $uploadedfile")

安全対策としてファイルの種類を確認してください。porneLはこの提案された追加を行います:

system("file -bi -- ".escapeshellarg($uploadedfile))

誰かがsystem()関数で潜在的に危険なファイルを実行することがファイルタイプを決定する安全な方法である方法を説明できますか?

4

1 に答える 1

0

unix コマンド "file" がファイルを実行していません。

http://en.wikipedia.org/wiki/File_(command )から:

ファイルは、マジック ナンバーを使用してコンピューター ファイルに含まれるデータの種類を認識するための標準的な Unix プログラムです。

ファイルタイプを確認する同じ方法がここで提案されています: http://www.php.net/manual/en/function.mime-content-type.php#91646

引数 -bi の意味もここで確認できます: http://linux.about.com/library/cmd/blcmdl1_file.htm

-b ファイル名を出力行の先頭に追加しません (簡易モード)。

-i file コマンドが、従来の人間が読める文字列ではなく、MIME タイプの文字列を出力するようにします。したがって、text/plain; charset=us-ascii'' rather thanASCII テキストと表示される場合があります。このオプションが機能するために、 file は、コマンド自体によって認識されるファイル (多くのテキスト ファイル タイプ、ディレクトリなど) を処理する方法を変更し、代替のmagic'' file. (SeeFILES'' セクションを使用します。

于 2012-08-09T02:13:51.900 に答える