GNU/Linux >> Linux の 問題 >  >> Linux

ファイルが画像であるかどうかを判断するためのスクリプト?

ディレクトリ内のすべてのファイルが画像ファイルであることを確認するシェルスクリプトを作成したいと思います。

最近、ハッカーがディレクトリにファイルを生成し、それを.jpgファイルとしてマスクできるという問題が発生しました。ディレクトリ内のすべてのファイルをチェックして、それらが実際のjpg、gif、またはpngファイルであることを確認するシェルスクリプトを作成したいと思います。

承認された回答:

fileの使用には細心の注意を払ってください。 あなたがそれに完全に信頼できない入力を与える状況で。たとえば、RHEL5ファイル これを識別します:

GIF87a
<?php
echo "Hello from PHP!n";
?>

「GIF画像データ、バージョン87a、15370x28735」として。 PHPインタープリターは、その入力の実行に問題はありません。その問題の欠如が「ローカルファイルインクルード」(LFI)問題の基礎です。

次に、 file (さらには文字列 )実際に入力ファイルを解析して、知りたいことを伝えます。これらのパーサーは複雑で問題があります。

識別を提案します ImageMagickスイートからのコマンド。上記の簡単な例にだまされることはなく、画像ファイルを正しく解析するだけなので、 fileよりもセキュリティ上の欠陥が発生しにくいはずです。 。


Linux
  1. Linuxでmvなしでファイルを移動する

  2. Bashスクリプトをファイルに接続できますか?

  3. 実行時にスクリプトでシェルを決定しますか?

  1. Linux のスパース ファイルとは

  2. テキスト ファイルにリストされているファイルを削除する

  3. シバンまたはシバンではない

  1. スクリプトを実行するために、パターンに一致するファイルがあるかどうかをテストしますか?

  2. 最も古いファイルを移動するためのシェルスクリプト?

  3. ファイルシステムまたはパーティションが RO または RW でマウントされているかどうかを Bash スクリプトで判断しますか?